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();
        }
        private static void Main(string[] args)
        {
            var ip   = args[0];
            var port = args[1];

            var channel = new Channel($"{ip}:{port}", ChannelCredentials.Insecure);
            var client  = new MathsProccessor.MathsProccessorClient(channel);

            var calcIO    = new ConsoleCalcIO();
            var parser    = new CalcInputParser(calcIO);
            var processor = new ClientProcessor(client, calcIO, parser);

            try
            {
                // Test connection
                client.Set(new Arguments()
                {
                    ID = "0", Input = 0
                });
                processor.Start();
            }
            catch (RpcException e)
            {
                calcIO.WriteLine($"Error: {e.Status.Detail}");
                calcIO.ReadString();
            }

            channel.ShutdownAsync().Wait();
        }
Exemple #3
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();
        }
        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();
        }