Пример #1
0
        static void Main(string[] args)
        {
            var pump = new FileDataSource(new StreamReader(@"data\TestData.txt"));
            var shifter = new CircularShifter();
            var alphabetizer = new Alphabetizer();

            #region Modifying the requirement - add a 'noise' list to remove words from the index

            //var noiseWords = new FileDataSource(new StreamReader(@"data\noise.txt")).Begin();
            //var noiseRemover = new NoiseRemoval(noiseWords);
            //pump.Successor = noiseRemover;
            //noiseRemover.Successor = shifter;

            #endregion

            pump.Successor = shifter;
            shifter.Successor = alphabetizer;

            var pipeline = new Pipeline<string>(pump: pump, sink: new ConsoleWriter());
            Console.WriteLine("Begin Execution At:{0}", DateTime.UtcNow);
            pipeline.Execute();
            Console.WriteLine("Stop Execution At:{0}", DateTime.UtcNow);

            Console.WriteLine("Press any key to continue");
            Console.ReadKey();
        }
Пример #2
0
 public KWICController()
 {
     _circularShifter = new CircularShifter();
     _alphabetizer    = new Alphabetizer();
     _inputManager    = new InputManager();
     _outputManager   = new OutputManager();
 }
Пример #3
0
        public void IndexFile(string fileName)
        {
            var input = new Input();
            var shifter = new CircularShifter();
            var alphabetizer = new Alphabetizer();

            input.Lines.ItemAdded += shifter.OnNewLine;
            shifter.ShiftedLines.ItemAdded += alphabetizer.OnShiftedLine;
            alphabetizer.SortedLines.ItemAdded += this.OnItemsSorted;

            input.Parse(fileName);
            alphabetizer.Sort();
        }
Пример #4
0
        public void IndexFile(string fileName)
        {
            var input        = new Input();
            var shifter      = new CircularShifter();
            var alphabetizer = new Alphabetizer();

            input.Lines.ItemAdded              += shifter.OnNewLine;
            shifter.ShiftedLines.ItemAdded     += alphabetizer.OnShiftedLine;
            alphabetizer.SortedLines.ItemAdded += this.OnItemsSorted;

            input.Parse(fileName);
            alphabetizer.Sort();
        }
Пример #5
0
        static void Main(string[] args)
        {
            const int bufferSize = 32;
            var rawDataBuffer = new BlockingCollection<string>(bufferSize);
            var shiftedDataBuffer = new BlockingCollection<string>(bufferSize);
            var alphabetizedDataBuffer = new BlockingCollection<string>(bufferSize);

            var pump = new FileDataSource(rawDataBuffer , new StreamReader(@"data\TestData.txt"));

            var shifter = new CircularShifter(rawDataBuffer, shiftedDataBuffer);
            var alphabetizer = new Alphabetizer(shiftedDataBuffer, alphabetizedDataBuffer);
            var writer = new ConsoleWriter(alphabetizedDataBuffer);

            var pipeline = new Pipeline<string>(pump: pump, sink: writer, filters: new List<IAmAFilter<string>> {shifter, alphabetizer});
            Console.WriteLine("Begin Execution At:{0}", DateTime.UtcNow);
            pipeline.Execute();
            Console.WriteLine("Stop Execution At:{0}", DateTime.UtcNow);

            Console.WriteLine("Press any key to continue");
            Console.ReadKey();
        }