示例#1
0
 /// <summary>
 /// Creates a stage writer.
 /// </summary>
 /// <param name="settings">the settings for this stage</param>
 /// <param name="archiveList">the archive list</param>
 /// <param name="rolloverLog">the rollover log</param>
 public CombineFiles(CombineFilesSettings settings, ArchiveList <TKey, TValue> archiveList, RolloverLog rolloverLog)
     : base(MessageClass.Framework)
 {
     m_settings = settings.CloneReadonly();
     m_settings.Validate();
     m_archiveList                      = archiveList;
     m_createNextStageFile              = new SimplifiedArchiveInitializer <TKey, TValue>(settings.ArchiveSettings);
     m_rolloverLog                      = rolloverLog;
     m_rolloverComplete                 = new ManualResetEvent(false);
     m_syncRoot                         = new object();
     m_rolloverTask                     = new ScheduledTask(ThreadingMode.DedicatedForeground, ThreadPriority.BelowNormal);
     m_rolloverTask.Running            += OnExecute;
     m_rolloverTask.UnhandledException += OnException;
     m_rolloverTask.Start(m_settings.ExecuteTimer);
 }