Beispiel #1
0
        /// <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;
            }
        }
Beispiel #2
0
        /// <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;
        }
Beispiel #4
0
 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="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="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="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;
        }
 /// <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)
 {
 }