示例#1
0
 /// <summary>
 /// Creates a new <see cref="ServerDatabaseSettings"/>
 /// </summary>
 public ServerDatabaseSettings()
 {
     m_databaseName             = string.Empty;
     m_archiveList              = new ArchiveListSettings();
     m_writeProcessor           = new WriteProcessorSettings();
     m_rolloverLog              = new RolloverLogSettings();
     m_keyType                  = Guid.Empty;
     m_valueType                = Guid.Empty;
     m_streamingEncodingMethods = new ImmutableList <EncodingDefinition>(x =>
     {
         if (x is null)
         {
             throw new ArgumentNullException("value");
         }
         return(x);
     });
 }
        /// <summary>
        /// Creates a new <see cref="RolloverLog"/>
        /// </summary>
        /// <param name="settings">the settings</param>
        /// <param name="list">the list</param>
        public RolloverLog(RolloverLogSettings settings, ArchiveList list)
        {
            m_settings = settings.CloneReadonly();
            m_settings.Validate();

            if (settings.IsFileBacked)
            {
                foreach (var logFile in Directory.GetFiles(settings.LogPath, settings.SearchPattern))
                {
                    var log = new RolloverLogFile(logFile);
                    if (log.IsValid)
                    {
                        log.Recover(list);
                    }
                    else
                    {
                        log.Delete();
                    }
                }
            }
        }