use crate::operating_system::{
desktop, drivers, file_system, processes, registry, services, users, event_log, memory_and_pagefiles, scheduler_jobs, product_activation, software_license_provider, shares, multimedia_audio_visual, storage
};
use serde::{Deserialize, Serialize};
use tokio::join;
#[derive(Default, Deserialize, Serialize, Debug, Clone)]
pub struct Windows {
pub processes: processes::Processes,
pub threads: processes::Threads,
pub drivers: drivers::Drivers,
pub registry: registry::Registry,
pub services: services::Services,
pub desktops: desktop::Desktops,
pub environment: desktop::Environments,
pub timezones: desktop::TimeZones,
pub user_accounts: users::UserAccounts,
pub groups: users::Groups,
pub logon_sessions: users::LogonSessions,
pub network_login_profiles: users::NetworkLoginProfiles,
pub system_accounts: users::SystemAccounts,
pub directories: file_system::Directories,
pub directories_specifications: file_system::DirectorySpecifications,
pub disk_partition: file_system::DiskPartitions,
pub logical_disks: file_system::LogicalDisks,
pub mapped_logical_disks: file_system::MappedLogicalDisks,
pub quota_settings: file_system::QuotaSettings,
pub shortcut_files: file_system::ShortcutFiles,
pub volumes: file_system::Volumes,
pub nt_event_log_files: event_log::NTEventlogFiles,
pub nt_log_events: event_log::NTLogEvents,
pub pagefiles: memory_and_pagefiles::PageFiles,
pub pagefile_settings: memory_and_pagefiles::PageFileSettings,
pub pagefile_usages: memory_and_pagefiles::PageFileUsages,
pub scheduled_jobs: scheduler_jobs::ScheduledJobs,
pub local_times: scheduler_jobs::LocalTimes,
pub utc_times: scheduler_jobs::UTCTimes,
pub proxys: product_activation::Proxys,
pub windows_product_activations: product_activation::WindowsProductActivations,
pub software_licensing_products: software_license_provider::SoftwareLicensingProducts,
pub software_licensing_services: software_license_provider::SoftwareLicensingServices,
pub software_licensing_token_activation_licenses: software_license_provider::SoftwareLicensingTokenActivationLicenses,
pub server_connections: shares::ServerConnections,
pub server_sessions: shares::ServerSessions,
pub shares: shares::Shares,
pub codec_files: multimedia_audio_visual::CodecFiles,
pub shadow_copys: storage::ShadowCopys,
pub shadow_contexts: storage::ShadowContexts,
pub shadow_providers: storage::ShadowProviders,
}
impl Windows {
pub fn update(&mut self) {
self.processes.update();
self.threads.update();
self.drivers.update();
self.registry.update();
self.services.update();
self.desktops.update();
self.environment.update();
self.timezones.update();
self.user_accounts.update();
self.groups.update();
self.logon_sessions.update();
self.network_login_profiles.update();
self.system_accounts.update();
self.directories.update();
self.directories_specifications.update();
self.disk_partition.update();
self.logical_disks.update();
self.mapped_logical_disks.update();
self.quota_settings.update();
self.shortcut_files.update();
self.volumes.update();
self.nt_event_log_files.update();
self.nt_log_events.update();
self.pagefiles.update();
self.pagefile_settings.update();
self.pagefile_usages.update();
self.scheduled_jobs.update();
self.local_times.update();
self.utc_times.update();
self.software_licensing_products.update();
self.software_licensing_services.update();
self.software_licensing_token_activation_licenses.update();
self.server_connections.update();
self.server_sessions.update();
self.shares.update();
self.codec_files.update();
self.shadow_copys.update();
self.shadow_contexts.update();
self.shadow_providers.update();
}
pub async fn async_update(&mut self) {
join!(
self.threads.async_update(),
self.processes.async_update(),
self.drivers.async_update(),
self.registry.async_update(),
self.services.async_update(),
self.desktops.async_update(),
self.environment.async_update(),
self.timezones.async_update(),
self.user_accounts.async_update(),
self.groups.async_update(),
self.logon_sessions.async_update(),
self.network_login_profiles.async_update(),
self.system_accounts.async_update(),
self.directories.async_update(),
self.directories_specifications.async_update(),
self.disk_partition.async_update(),
self.logical_disks.async_update(),
self.mapped_logical_disks.async_update(),
self.quota_settings.async_update(),
self.shortcut_files.async_update(),
self.volumes.async_update(),
self.nt_event_log_files.async_update(),
self.nt_log_events.async_update(),
self.pagefiles.async_update(),
self.pagefile_settings.async_update(),
self.pagefile_usages.async_update(),
self.scheduled_jobs.async_update(),
self.local_times.async_update(),
self.utc_times.async_update(),
self.software_licensing_products.async_update(),
self.software_licensing_services.async_update(),
self.software_licensing_token_activation_licenses.async_update(),
self.server_connections.async_update(),
self.server_sessions.async_update(),
self.shares.async_update(),
self.codec_files.async_update(),
self.shadow_copys.async_update(),
self.shadow_contexts.async_update(),
self.shadow_providers.async_update(),
);
}
}