/// <summary> /// Initializes a new instance of the <see cref="QueueProcessManager"/> class. /// </summary> /// <param name="asyncHandler">if set to <c>true</c> [async handler].</param> protected QueueProcessManagerEx(QueueProcessMode mode, IExecutorService executorService, int capacity, int queueTimeout, bool isLogging) : base(executorService) { _mode = mode; if (mode == QueueProcessMode.Thread) { _queue = ProducerConsumerQueueFactory.Create<T>(executorService, capacity, queueTimeout, isLogging); _queue.Dequeue += OnQueue_Dequeue; } }
/// <summary> /// Initializes a new instance of the <see cref="QueueProcessManager"/> class. /// </summary> /// <param name="asyncHandler">if set to <c>true</c> [async handler].</param> protected QueueProcessManager(QueueProcessMode mode) { _mode = mode; this.StopProcessing = false; if (mode == QueueProcessMode.Thread) { _queue = new Queue<T>(); _queueSyncRoot = ((ICollection)_queue).SyncRoot; _thProcess = Extensions.CreateThread(new ThreadStart(this.ProcessQueueItems)); _thProcess.Start(); } else if (mode == QueueProcessMode.Asynchronous) { _logItemHandler = new ProcessQueueItemHandler<T>(this.ProcessQueueItem); } }
/// <summary> /// Initializes a new instance of the <see cref="FileLoggingSystem"/> class. /// </summary> /// <param name="source">The source.</param> /// <param name="allowMultipleWriters">if set to <c>true</c> [allow multiple writers].</param> /// <param name="maxFileSize">Size of the max file.</param> /// <param name="mode">The mode.</param> public FileLoggingSystem(string source, bool allowMultipleWriters, int maxFileSize, QueueProcessMode mode) : base(source, mode, (mode == QueueProcessMode.Thread ? ExecutorServiceFactory.CreateExecutorService() : null)) { if (Path.GetFileName(source).IsEmpty()) throw new ArgumentNullException("File Name"); if (mode == QueueProcessMode.Thread) { AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit; AppDomain.CurrentDomain.DomainUnload += CurrentDomain_ProcessExit; ShutdownHelper.ShutdownInitiated += CurrentDomain_ProcessExit; } this.MaxFileSize = maxFileSize; this.AllowMultipleWriters = allowMultipleWriters; }
protected QueueProcessManagerEx(QueueProcessMode mode, IExecutorService executorService) : this(mode, executorService, -1, 10, false) { }
/// <summary> /// Initializes a new instance of the <see cref="CustomLoggingSystem"/> class. /// </summary> /// <param name="source">The source.</param> /// <param name="moduleName">Name of the module.</param> public CustomLoggingSystem(QueueProcessMode mode) : base(string.Empty, mode) { }
/// <summary> /// Initializes a new instance of the <see cref="FileLoggingSystem"/> class. /// </summary> /// <param name="source">The source.</param> /// <param name="maxFileSize">Size of the max file.</param> /// <param name="mode">The mode.</param> public FileLoggingSystem(string source, int maxFileSize, QueueProcessMode mode) : this(source, false, maxFileSize, mode) { }
/// <summary> /// Initializes a new instance of the <see cref="FileLoggingSystem"/> class. /// </summary> /// <param name="source">The source.</param> /// <param name="mode">The mode.</param> public FileLoggingSystem(string source, QueueProcessMode mode) : this(source, false, DEFAULT_MAX_FILE_SIZE, mode) { }
/// <summary> /// Initializes a new instance of the <see cref="LoggingSystemBase"/> class. /// </summary> /// <param name="source">The source.</param> /// <param name="mode">The mode.</param> protected LoggingSystemBase(string source, QueueProcessMode mode) : this(source, mode, null) { this.Source = source; }
protected LoggingSystemBase(string source, QueueProcessMode mode, IExecutorService executorService) : base(mode, executorService, -1, 10, true) { this.Source = source; }
/// <summary> /// Initializes a new instance of the <see cref="ConsoleLoggingSystem"/> class. /// </summary> /// <param name="displayWaitMessage">if set to <c>true</c> [display wait message].</param> public ConsoleLoggingSystem(QueueProcessMode mode) : base(typeof(Console).FullName, mode) { }
/// <summary> /// Initializes a new instance of the <see cref="FileLoggingSystem"/> class. /// </summary> /// <param name="source">The source.</param> /// <param name="allowMultipleWriters">if set to <c>true</c> [allow multiple writers].</param> /// <param name="maxFileSize">Size of the max file.</param> /// <param name="mode">The mode.</param> public FileLoggingSystem(string source, bool allowMultipleWriters, int maxFileSize, QueueProcessMode mode) : base(source, mode, (mode == QueueProcessMode.Thread ? ExecutorServiceFactory.CreateExecutorService() : null)) { if (Path.GetFileName(source).IsEmpty()) { throw new ArgumentNullException("File Name"); } if (mode == QueueProcessMode.Thread) { AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit; AppDomain.CurrentDomain.DomainUnload += CurrentDomain_ProcessExit; ShutdownHelper.ShutdownInitiated += CurrentDomain_ProcessExit; } this.MaxFileSize = maxFileSize; this.AllowMultipleWriters = allowMultipleWriters; }