EasySave v3.0
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 NEasyLog
 CDailyLogWriterDailyLogWriter is responsible for writing log entries to daily log files in JSON format. Each daily file contains a single JSON array with one object per log entry
 CILogWriterPublic contract for a log writer. Implementations write a log entry asynchronously
 CXmlDailyLogWriterWrites log entries to a daily XML file (yyyy-MM-dd.xml). The file contains a logEntries root element with one logEntry element per write
 NEasySave
 NConsole
 NResources
 CLangHelperThis class handles language management
 CEasySavePathsPaths used by EasySave for config, state and log files (for display in TUI "View paths")
 NCore
 NEntities
 CBackupConfigurationGlobal configuration: list of jobs and paths for log/state files
 CBackupJobBackup job
 CBackupProgressBackup job progress (for the real-time status file)
 NExceptions
 CBusinessSoftwareDetectedExceptionThrown when backup cannot start because the configured business software process is detected as running
 NInterfaces
 CIBackupExecutorExecutes one or more backup jobs. When multiple job identifiers are provided, jobs run in parallel; when a single job is provided, it runs alone (same behavior as before). Depends on strategies, the FileSystem, the StateWriter, and logging (injected). Supports cooperative cancellation
 CIBackupStrategyDefines the filtering of eligible files (complete vs differential)
 CIBackupStrategyFactoryProvides the appropriate backup strategy based on the specified backup type
 CIBusinessSoftwareDetectorDetects whether a configured "business software" process is currently running. Used to block backup start and to stop after the current file during backup
 CICentralizedLogClientPort for sending log entries to a centralized log server. Implementations (adapters) must not throw: network errors must be handled without failing the backup
 CIConfigurationRepositoryDefines methods for loading and saving the backup configuration, including the list of jobs, log/status directory, and the date of the last full backup for each job
 CIFileEncryptorEncrypts a file using an external process (e.g. CryptoSoft). Follows Strategy pattern: the backup executor can use this instead of a plain copy for files whose extension is in the encryption list
 CIFileSystemServiceDefines operations for interacting with the file system. Acts as an abstraction layer to handle file enumeration, copying, and metadata retrieval
 CIPriorityTransferGateCoordinates transfer order across multiple backup jobs so that the global priority rule is respected: as long as any job has a priority file pending, no job may transfer a non-priority file. Used only when several jobs run in parallel. Single-job execution does not require a gate
 CIStateWriterDefines the contract for writing the real-time state of backup jobs to a persistence medium (e.g., a single JSON file)
 NModels
 CBackupEnumerationOptionsOptions applied during backup file enumeration
 CLogEntryRepresents a single backup log entry for EasySave
 NGui
 NServices
 CAudiodescription
 CBackupProgressAggregatorAdapts BackupProgress reports into a list of JobProgressViewModel for the GUI. Maintains one view model per job name (by ordinal-ignore-case key) so that parallel jobs each have a stable row
 CConfigurationHolderDefault implementation of IConfigurationHolder, keeping the current configuration in memory and delegating persistence to IConfigurationRepository
 CFilePickerServiceDefault implementation of IFilePickerService using Avalonia's IStorageProvider to display a native file picker dialog. No file type filter is applied
 CFolderPickerServiceDefault implementation of IFolderPickerService using Avalonia's IStorageProvider to display a native folder picker dialog
 CIAudiodescription
 CIBackupProgressAggregatorAggregates raw BackupProgress reports into a stable list of JobProgressViewModel for display (one entry per job). Single responsibility: progress-to-view adaptation (Adapter pattern)
 CIConfigurationHolderHolds the current backup configuration in memory as a single source of truth, shared across all tabs for smooth navigation without reloading from disk
 CIConfirmationService
 CIFilePickerServiceService abstraction that opens a file picker dialog (MVVM-friendly and testable)
 CIFolderPickerServiceService abstraction that opens a folder picker dialog (MVVM-friendly and testable)
 CILocalizationProviderProvides localized UI strings for the GUI (inversion of control abstraction)
 CLocalizationProviderDefault implementation of ILocalizationProvider using strongly-typed access to ResX resources embedded in the GUI assembly
 CMessageBoxConfirmationService
 NViewModels
 CCreateEditJobViewModelViewModel for the create/edit tab: allows creating a new job or editing an existing one through a form
 CJobItemViewModelLightweight view model used to display a backup job in lists (separating presentation from domain entities)
 CJobsTabViewModelViewModel for the jobs tab: listing, details and execution of backup jobs
 CJobProgressViewModelView model for a single job's progress in the GUI (name, percent, files, size, ETA, current file). Used as the data item for each row in the multi-job progress list (Composite display)
 CMainWindowViewModelViewModel for the main window: header texts and tab view models. Contains orchestration logic only, no business rules
 CSettingsViewModelViewModel for the settings tab: shows the important paths and allows changing the log format
 CViewModelBaseBase class for all ViewModels providing property change notification (MVVM)
 CAppAvalonia application class for the EasySave GUI. Responsible for loading XAML resources and wiring the main window
 CEasySavePathsProvides strongly-typed paths used by the EasySave GUI for configuration, state and log files
 CMainWindowMain window view: contains only generated XAML content, the DataContext is provided by App (pure MVVM)
 CMutableEasySavePathsMutable version of EasySavePaths allowing to change the base directory at runtime. When changing the path, existing configuration, state and log files are copied to the new location so that no data is lost
 NInfrastructure
 NBackup
 CBackupExecutorExecutes backup jobs in parallel when multiple are selected, otherwise runs a single job. Logging, real-time state, full/differential strategy. Progress by size (bytes) with ETA and report during file copy. Blocks start and stops during backup when business software is detected. State and log writes are coordinated so that the state file and logs remain consistent when several jobs run concurrently
 CBackupStrategyFactorySimple factory that returns the right IBackupStrategy implementation for a BackupType
 CBusinessSoftwareDetectorDetects if a process with the given name is running (e.g. Calculator for demos). Matches by process name (case-insensitive); ".exe" suffix in config is stripped for comparison
 CDifferentialBackupStrategyDifferential backup strategy: only files modified since the last full backup
 CFullBackupStrategyFull backup strategy: all files are eligible
 CPriorityTransferGateThread-safe implementation of IPriorityTransferGate. Tracks per-job priority file counts and signals waiters when the total pending priority count reaches zero
 NEncryption
 CCryptoSoftFileEncryptorAdapter for the external CryptoSoft executable: encrypts a file by launching a process with arguments (source path, destination path, key file path). Exit code: -1 invalid args, -4 failure, otherwise milliseconds on success
 NFileSystem
 CFileSystemServiceImplementation of file system operations (local, external, network)
 NLogging
 CCentralizedLogClientAdapter: sends log entries to the centralized log server via TCP (newline-delimited JSON). Does not throw: all exceptions are caught so that backup execution is never failed by log sending
 NPersistence
 CConfigurableLogWriterILogWriter implementation that dynamically selects the log format (JSON or XML) based on the application configuration (BackupConfiguration.LogFileFormat)
 CDestinationLogWriterILogWriter that routes log entries according to BackupConfiguration.LogDestination: local only, centralized server only, or both. Local writing is delegated to the configured format writer (JSON/XML). Centralized sending never throws so that backup execution is not failed by network errors
 CJsonConfigurationRepositoryLoads and saves the application configuration in JSON format. No hard-coded paths: the configuration directory is injected
 CJsonStateWriterImplementation of IStateWriter that writes backup jobs state to a JSON file
 NLogServer
 NProtocol
 CILogEntryHandlerDefines the contract for handling a single received log entry (validation and persistence). Allows the socket layer to remain agnostic of storage (Dependency Inversion)
 CLogEntryDtoData transfer object for a log entry received over the wire. Mirrors EasySave.Core.Models.LogEntry with settable properties for JSON deserialization. TimeSpan is sent as total milliseconds (long)
 CLogEntryHandlerHandles received log DTOs: validates and forwards them to the configured ILogWriter. Converts LogEntryDto to LogEntry for storage (Adapter pattern)
 NSockets
 CLogSocketListenerListens for incoming TCP connections and processes newline-delimited JSON log entries per line. One connection can send multiple lines; each line is one JSON LogEntryDto. Sends "OK" or "ERR" per line (synchronous response per log entry)
 CProgram