コード例 #1
0
ファイル: Filter.cs プロジェクト: gspatace/logexpert
		public Filter(LogExpert.ColumnizerCallback callback)
		{
			_callback = callback;
			FilterResultLines = new List<int>();
			LastFilterLinesList = new List<int>();
			FilterHitList = new List<int>();
		}
コード例 #2
0
 public Filter(LogExpert.ColumnizerCallback callback)
 {
     _callback           = callback;
     FilterResultLines   = new List <int>();
     LastFilterLinesList = new List <int>();
     FilterHitList       = new List <int>();
 }
コード例 #3
0
        private Filter DoWork(FilterParams filterParams, int startLine, int maxCount, ProgressCallback progressCallback)
        {
            Logger.logInfo(string.Format("Started Filter worker [{0}] for line {1}", Thread.CurrentThread.ManagedThreadId, startLine));

            // Give every thread own copies of ColumnizerCallback and FilterParams, because the state of the objects changes while filtering
            FilterParams threadFilterParams = filterParams.CreateCopy2();

            LogExpert.ColumnizerCallback threadColumnizerCallback = _callback.createCopy();

            Filter filter = new Filter(threadColumnizerCallback);

            lock (_filterWorkerList)
            {
                _filterWorkerList.Add(filter);
            }
            if (_shouldStop)
            {
                return(filter);
            }
            int realCount = filter.DoFilter(threadFilterParams, startLine, maxCount, progressCallback);

            Logger.logInfo(string.Format("Filter worker [{0}] for line {1} has completed.", Thread.CurrentThread.ManagedThreadId, startLine));
            lock (_filterReadyList)
            {
                _filterReadyList.Add(filter);
            }
            return(filter);
        }
コード例 #4
0
ファイル: FilterStarter.cs プロジェクト: gspatace/logexpert
		public FilterStarter(LogExpert.ColumnizerCallback callback, int minThreads)
		{
			_callback = callback;

			FilterResultLines = new List<int>();
			LastFilterLinesList = new List<int>();
			FilterHitList = new List<int>();

			ThreadCount = Environment.ProcessorCount * 4;
			ThreadCount = minThreads;

			int worker;
			int completion;

			ThreadPool.GetMinThreads(out worker, out completion);
			ThreadPool.SetMinThreads(minThreads, completion);
			ThreadPool.GetMaxThreads(out worker, out completion);
		}
コード例 #5
0
        public FilterStarter(LogExpert.ColumnizerCallback callback, int minThreads)
        {
            _callback = callback;

            FilterResultLines   = new List <int>();
            LastFilterLinesList = new List <int>();
            FilterHitList       = new List <int>();

            ThreadCount = Environment.ProcessorCount * 4;
            ThreadCount = minThreads;

            int worker;
            int completion;

            ThreadPool.GetMinThreads(out worker, out completion);
            ThreadPool.SetMinThreads(minThreads, completion);
            ThreadPool.GetMaxThreads(out worker, out completion);
        }
コード例 #6
0
ファイル: ColumnCache.cs プロジェクト: x2f/logexpert
        internal string[] GetColumnsForLine(LogfileReader logFileReader, int lineNumber, ILogLineColumnizer columnizer, LogExpert.ColumnizerCallback columnizerCallback)
        {
            if (_lastColumnizer != columnizer || _lastLineNumber != lineNumber || _cachedColumns == null || columnizerCallback.LineNum != lineNumber)
            {
                _lastColumnizer = columnizer;
                _lastLineNumber = lineNumber;
                string line = logFileReader.GetLogLineWithWait(lineNumber);
                if (line != null)
                {
                    columnizerCallback.LineNum = lineNumber;
                    _cachedColumns             = columnizer.SplitLine(columnizerCallback, line);
                }
                else
                {
                    _cachedColumns = null;
                }
            }

            return(_cachedColumns);
        }
コード例 #7
0
ファイル: RangeFinder.cs プロジェクト: gspatace/logexpert
		public RangeFinder(FilterParams filterParams, LogExpert.ColumnizerCallback callback)
		{
			_filterParams = filterParams.CreateCopy2();
			_callback = callback;
		}
コード例 #8
0
 public RangeFinder(FilterParams filterParams, LogExpert.ColumnizerCallback callback)
 {
     _filterParams = filterParams.CreateCopy2();
     _callback     = callback;
 }