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