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(); }
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(); }