Exemplo n.º 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);
 }
Exemplo n.º 2
0
 /// <summary>
 /// Creates a stage writer.
 /// </summary>
 public FirstStageWriter(FirstStageWriterSettings settings, ArchiveList <TKey, TValue> list)
     : base(MessageClass.Framework)
 {
     if (settings is null)
     {
         throw new ArgumentNullException("settings");
     }
     m_settings = settings.CloneReadonly();
     m_settings.Validate();
     m_createNextStageFile = new SimplifiedArchiveInitializer <TKey, TValue>(m_settings.FinalSettings);
     m_rolloverComplete    = new SafeManualResetEvent(false);
     m_list                             = list;
     m_pendingTables1                   = new List <SortedTreeTable <TKey, TValue> >();
     m_pendingTables2                   = new List <SortedTreeTable <TKey, TValue> >();
     m_pendingTables3                   = new List <SortedTreeTable <TKey, TValue> >();
     m_syncRoot                         = new object();
     m_rolloverTask                     = new ScheduledTask(ThreadingMode.DedicatedForeground, ThreadPriority.Normal);
     m_rolloverTask.Running            += RolloverTask_Running;
     m_rolloverTask.UnhandledException += OnProcessException;
 }