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(); }
static void Main(string[] args) { string mathString = $"2+2{SQRT}4^2+5%"; MathBuffer buffer = new MathBuffer(mathString); Console.WriteLine(mathString); Console.WriteLine(buffer.ChangeToFunction()); Console.WriteLine(buffer.Eval()); Console.ReadKey(); }
public void Start() { mathBuffer = new MathBuffer(inStream, outStream); MyCultureInfo.Apply(); outStream.SendGreeting(); PostStart(); while (RunOperation()) { ReadOperation(); } }