Example #1
0
        public static void ConnectClient(Socket clientSocket)
        {
            var clientCalcIO = new TCPCalcIO(clientSocket, _consoleCalcIO);

            _clientCalcIO.Add(clientCalcIO);

            var expParser      = new ExpressionParser();
            var pathReader     = new PathReader();
            var firstOperation = new SaveNumberOperation();
            var operations     = new List <IOperation>
            {
                new AddOperation(),
                new SubstractOperation(),
                new DivideOperation(),
                new MultiplyOperation(),
                new JumpOperation(),
                new ExitOperation(),
                new LoadOperation(),
                new SaveOperation()
            };
            var inputParser = new CalcInputParser(clientCalcIO);
            var mathBuffer  = new MathBuffer(clientCalcIO);
            var history     = new OperationsHistory();
            var storage     = new ProcessorStorageFilesWork(mathBuffer, clientCalcIO, history, expParser, pathReader, inputParser);
            var processor   = new OperationsProcessor(storage, operations, firstOperation);

            processor.OperationPreReadAction += () => history.Update(processor, storage);

            var thread = new Thread(new ThreadStart(processor.Start));

            _clientThreads.Add(thread);

            thread.Start();
        }
Example #2
0
        private static void Main(string[] args)
        {
            // ADD FACTORY
            var calcIO         = new ConsoleCalcIO();
            var inputParser    = new CalcInputParser(calcIO);
            var mathBuffer     = new MathBuffer(calcIO);
            var history        = new OperationsHistory();
            var expParser      = new ExpressionParser();
            var pathReader     = new PathReader();
            var storage        = new ProcessorStorageFilesWork(mathBuffer, calcIO, history, expParser, pathReader, inputParser);
            var firstOperation = new SaveNumberOperation();
            var operations     = new List <IOperation>
            {
                new AddOperation(),
                new SubstractOperation(),
                new DivideOperation(),
                new MultiplyOperation(),
                new JumpOperation(),
                new ExitOperation(),
                new LoadOperation(),
                new SaveOperation()
            };

            var processor = new OperationsProcessor(storage, operations, firstOperation);

            processor.OperationPreReadAction += () => history.Update(processor, storage);

            processor.Start();
        }
Example #3
0
        public static void Start(object clientSocket)
        {
            Socket     socket           = (Socket)clientSocket;
            var        OperationsBuffer = new HistoryOperations();
            var        _InOutStream     = new InOutStream(socket);
            var        Buffer           = new ValuesBuffer(socket);
            IOperation currentOperation = new SaveNumberOperation();

            _InOutStream.HelpMessage();
            try
            {
                while (currentOperation.Run(Buffer, _InOutStream, OperationsBuffer, socket))
                {
                    currentOperation = _InOutStream.ReadOperation(operations);
                }
            }
            catch (Exception e) {
                Console.WriteLine(e.Message);
            }
        }
Example #4
0
        private static void Main(string[] args)
        {
            var calcIO         = new ConsoleCalcIO();
            var inputParser    = new CalcInputParser(calcIO);
            var mathBuffer     = new MathBuffer(calcIO);
            var storage        = new ProcessorStorage(mathBuffer, calcIO, inputParser);
            var firstOperation = new SaveNumberOperation();
            var operations     = new List <IOperation>
            {
                new AddOperation(),
                new SubstractOperation(),
                new DivideOperation(),
                new MultiplyOperation(),
                new JumpOperation(),
                new ExitOperation()
            };

            var processor = new OperationsProcessor(storage, operations, firstOperation);

            processor.Start();
        }