/// <summary> /// The default write processor settings /// </summary> public WriteProcessorSettings() { m_isEnabled = false; m_prebufferWriter = new PrebufferWriterSettings(); m_firstStageWriter = new FirstStageWriterSettings(); m_stagingRollovers = new ImmutableList <CombineFilesSettings>(x => { if (x == null) { throw new ArgumentNullException("value", "cannot be null"); } return(x); }); }
/// <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; }