/// <summary> /// Create a schedule /// </summary> /// <param name="scheduleLocation"></param> public Schedule(string scheduleLocation, ref CacheManager cacheManager, ref ClientInfo clientInfoForm) { Trace.WriteLine(string.Format("XMDS Location: {0}", ApplicationSettings.Default.XiboClient_xmds_xmds)); // Get the key for this display _hardwareKey = new HardwareKey(); // Save the schedule location _scheduleLocation = scheduleLocation; // Create a new collection for the layouts in the schedule _layoutSchedule = new Collection<LayoutSchedule>(); // Set cachemanager _cacheManager = cacheManager; // Set client info form _clientInfoForm = clientInfoForm; // Create a Register Agent _registerAgent = new RegisterAgent(); _registerAgentThread = new Thread(new ThreadStart(_registerAgent.Run)); _registerAgentThread.Name = "RegisterAgentThread"; // Create a schedule manager _scheduleManager = new ScheduleManager(_cacheManager, scheduleLocation); _scheduleManager.OnNewScheduleAvailable += new ScheduleManager.OnNewScheduleAvailableDelegate(_scheduleManager_OnNewScheduleAvailable); _scheduleManager.OnRefreshSchedule += new ScheduleManager.OnRefreshScheduleDelegate(_scheduleManager_OnRefreshSchedule); _scheduleManager.ClientInfoForm = _clientInfoForm; // Create a schedule manager thread _scheduleManagerThread = new Thread(new ThreadStart(_scheduleManager.Run)); _scheduleManagerThread.Name = "ScheduleManagerThread"; // Create a Schedule Agent _scheduleAgent = new ScheduleAgent(); _scheduleAgent.CurrentScheduleManager = _scheduleManager; _scheduleAgent.ScheduleLocation = scheduleLocation; _scheduleAgent.HardwareKey = _hardwareKey.Key; _scheduleAgent.ClientInfoForm = _clientInfoForm; // Create a thread for the Schedule Agent to run in - but dont start it up yet. _scheduleAgentThread = new Thread(new ThreadStart(_scheduleAgent.Run)); _scheduleAgentThread.Name = "ScheduleAgentThread"; // Create a RequiredFilesAgent _requiredFilesAgent = new RequiredFilesAgent(); _requiredFilesAgent.CurrentCacheManager = cacheManager; _requiredFilesAgent.HardwareKey = _hardwareKey.Key; _requiredFilesAgent.ClientInfoForm = _clientInfoForm; _requiredFilesAgent.OnComplete += new RequiredFilesAgent.OnCompleteDelegate(LayoutFileModified); // Create a thread for the RequiredFiles Agent to run in - but dont start it up yet. _requiredFilesAgentThread = new Thread(new ThreadStart(_requiredFilesAgent.Run)); _requiredFilesAgentThread.Name = "RequiredFilesAgentThread"; // Library Agent _libraryAgent = new LibraryAgent(); _libraryAgent.CurrentCacheManager = _cacheManager; // Create a thread for the Library Agent to run in - but dont start it up yet. _libraryAgentThread = new Thread(new ThreadStart(_libraryAgent.Run)); _libraryAgentThread.Name = "LibraryAgent"; // Log Agent _logAgent = new LogAgent(); _logAgentThread = new Thread(new ThreadStart(_logAgent.Run)); _logAgentThread.Name = "LogAgent"; }
public MainForm() { InitializeComponent(); Thread.CurrentThread.Name = "UI Thread"; // Override the default size if necessary if (Properties.Settings.Default.sizeX != 0) { _clientSize = new Size((int)Properties.Settings.Default.sizeX, (int)Properties.Settings.Default.sizeY); Size = _clientSize; WindowState = FormWindowState.Normal; Location = new Point((int)Properties.Settings.Default.offsetX, (int)Properties.Settings.Default.offsetY); StartPosition = FormStartPosition.Manual; } else { _clientSize = SystemInformation.PrimaryMonitorSize; } // Show in taskbar ShowInTaskbar = Settings.Default.ShowInTaskbar; // Setup the proxy information OptionForm.SetGlobalProxy(); _statLog = new StatLog(); this.FormClosing += new FormClosingEventHandler(MainForm_FormClosing); this.Shown += new EventHandler(MainForm_Shown); // Create the info form _clientInfoForm = new ClientInfo(); _clientInfoForm.Hide(); // Add a message filter to listen for the i key Application.AddMessageFilter(KeyStore.Instance); // Define the hotkey Keys key; try { key = (Keys)Enum.Parse(typeof(Keys), Settings.Default.ClientInformationKeyCode.ToUpper()); } catch { // Default back to I key = Keys.I; } KeyStore.Instance.AddKeyDefinition("ClientInfo", key, ((Settings.Default.ClientInfomationCtrlKey) ? Keys.Control : Keys.None)); // Register a handler for the key event KeyStore.Instance.KeyPress += Instance_KeyPress; // Trace listener for Client Info ClientInfoTraceListener clientInfoTraceListener = new ClientInfoTraceListener(_clientInfoForm); clientInfoTraceListener.Name = "ClientInfo TraceListener"; Trace.Listeners.Add(clientInfoTraceListener); // Log to disk? if (!string.IsNullOrEmpty(Settings.Default.LogToDiskLocation)) { TextWriterTraceListener listener = new TextWriterTraceListener(Settings.Default.LogToDiskLocation); Trace.Listeners.Add(listener); } Trace.WriteLine(new LogMessage("MainForm", "Client Initialised"), LogType.Info.ToString()); }
public ClientInfoTraceListener(ClientInfo clientInfo) { _clientInfo = clientInfo; }