public ServiceHelper()
{
m_telnetSessionPassword = "s3cur3";
m_logStatusUpdates = DefaultLogStatusUpdates;
m_maxStatusUpdatesLength = DefaultMaxStatusUpdatesLength;
m_maxStatusUpdatesFrequency = DefaultMaxStatusUpdatesFrequency;
m_monitorServiceHealth = DefaultMonitorServiceHealth;
m_healthMonitorInterval = DefaultHealthMonitorInterval;
m_requestHistoryLimit = DefaultRequestHistoryLimit;
m_supportFileManagementCommands = DefaultSupportFileManagementCommands;
m_supportTelnetSessions = DefaultSupportTelnetSessions;
m_supportSystemCommands = DefaultSupportSystemCommands;
m_secureRemoteInteractions = DefaultSecureRemoteInteractions;
m_serializationFormat = DefaultSerializationFormat;
m_persistSettings = DefaultPersistSettings;
m_settingsCategory = DefaultSettingsCategory;
m_processes = new List<ServiceProcess>();
m_remoteClients = new List<ClientInfo>();
m_clientRequestHistory = new List<ClientRequestInfo>();
m_serviceComponents = new List<object>();
m_clientRequestHandlers = new List<ClientRequestHandler>();
m_componentEnabledStates = new Dictionary<ISupportLifecycle, bool>();
m_clientStatusUpdateLookup = new Dictionary<Guid, ClientStatusUpdateConfiguration>();
m_threadScheduler = new LogicalThreadScheduler();
m_threadScheduler.UnhandledException += LogicalThread_ProcessException;
m_statusUpdateThread = m_threadScheduler.CreateThread(2);
m_statusUpdateQueue = new List<StatusUpdate>();
// Components
m_statusLog = new LogFile();
m_statusLog.FileName = "StatusLog.txt";
m_statusLog.SettingsCategory = "StatusLog";
m_statusLog.LogException += StatusLog_LogException;
m_processScheduler = new ScheduleManager();
m_processScheduler.SettingsCategory = "ProcessScheduler";
m_processScheduler.ScheduleDue += Scheduler_ScheduleDue;
m_errorLogger = new ErrorLogger();
m_errorLogger.ExitOnUnhandledException = false;
m_errorLogger.SettingsCategory = "ErrorLogger";
m_errorLogger.ErrorLog.SettingsCategory = "ErrorLog";
m_errorLogger.LoggingException += ErrorLogger_LoggingException;
}