/// <summary> /// Initialize a new RamController object /// </summary> /// <param name="ramUsageAddedEvent">An event to indicate that RamUsage object has been added</param> /// <param name="ramClearingCompletedEvent">An event to indicate that the RAM has been cleared</param> /// <param name="ramUpdateTimerInterval">The interval for which RAM usage statistics should be updated</param> /// <param name="enableRamStatistics">True if RamUsage objects should be kept in memory, otherwise false</param> /// <param name="maxUsageHistory">The total amount of RamUsage objects that should be stored for historical reasons</param> /// <param name="logController">The LogController object that can be used to add logs</param> internal RamController(RamUsageAdded ramUsageAddedEvent, RamClearingCompleted ramClearingCompletedEvent, int ramUpdateTimerInterval, bool enableRamStatistics, int maxUsageHistory, LogController logController) { _logController = logController ?? throw new ArgumentNullException(nameof(logController)); _logController.AddLog(new ApplicationLog("Initializing RamController")); if (ramUpdateTimerInterval <= 0) { throw new ArgumentException("Timer interval cannot be less than or equal to zero!"); } RamUsageAddedEvent = ramUsageAddedEvent; RamClearingCompletedEvent = ramClearingCompletedEvent; RamSavings = 0; _info = new ComputerInfo(); _ramUsageHistory = new List <RamUsage>(); EnableRamStatistics = enableRamStatistics; MaxUsageHistoryCount = maxUsageHistory; _ramOptimizer = new RamOptimizer(_logController); EmptyWorkingSets = true; ClearStandbyCache = true; ClearFileSystemCache = true; _ramTimer = new Timer(); _ramTimer.Elapsed += OnTimedEvent; _ramTimer.Interval = ramUpdateTimerInterval; _ramTimer.Enabled = false; _logController.AddLog(new ApplicationLog("Done initializing RamController")); }
/// <summary> /// Initialize a new RamController object /// </summary> /// <param name="updateGuiStatisticsEvent">An event to indicate that a GUI update should occur</param> /// <param name="ramClearingCompletedEvcent">An event to indicate that the RAM has been cleared</param> /// <param name="ramUpdateTimerInterval">The interval for which RAM usage statistics should be updated</param> /// <param name="logController">The LogController object that can be used to add logs</param> internal RamController(UpdateGuiStatistics updateGuiStatisticsEvent, RamClearingCompleted ramClearingCompletedEvcent, int ramUpdateTimerInterval, LogController logController) { _logController = logController ?? throw new ArgumentNullException(nameof(logController)); _logController.AddLog(new ApplicationLog("Initializing RamController")); if (ramUpdateTimerInterval <= 0) { throw new ArgumentException("Timer interval cannot be less than or equal to zero!"); } UpdateGuiStatisticsEvent = updateGuiStatisticsEvent ?? throw new ArgumentNullException(nameof(updateGuiStatisticsEvent)); RamClearingCompletedEvcent = ramClearingCompletedEvcent ?? throw new ArgumentNullException(nameof(ramClearingCompletedEvcent)); RamSavings = 0; _info = new ComputerInfo(); _ramOptimizer = new RamOptimizer(_logController); EmptyWorkingSets = true; ClearStandbyCache = true; ClearFileSystemCache = true; _ramTimer = new Timer(); _ramTimer.Elapsed += OnTimedEvent; _ramTimer.Interval = ramUpdateTimerInterval; _ramTimer.Enabled = false; _logController.AddLog(new ApplicationLog("Done initializing RamController")); }