public Task Run() { _mainApplicationTask = new TaskCompletionSource <bool>(); // System recorder var systemRecorder = new SystemRecorder(); _systemMessageDispatcher = systemRecorder; _systemMessageDispatcher.InterruptedWithMessage += SystemInterruptedHandler; // Application recorder _applicationRecorder = new ApplicationRecorder(systemRecorder, new MessagesCache(10)); // Remote trace monitor var remoteTraceMonitor = new RemoteTraceMonitor(new ConsoleAbstraction() , 4, systemRecorder, systemRecorder); remoteTraceMonitor.Start(); var remoteTraceMonitorСonsistent = new RemoteTraceMonitorСonsistent(remoteTraceMonitor); var remoteOperatorFactory = new BaseMonitoredRemoteOperatorFactory(new BaseInstructionSenderFactory(_applicationRecorder), remoteTraceMonitorСonsistent, _applicationRecorder); var traceableRemoteApiMapFactory = new BaseTraceableRemoteApiMapFactory(new BaseInstructionReceiverFactory(_applicationRecorder), _applicationRecorder); var apiOperatorFactory = new ApiOperatorFactory(remoteOperatorFactory, traceableRemoteApiMapFactory, _applicationRecorder); apiOperatorFactory.Create("127.0.0.1:8081"); return(_mainApplicationTask.Task); }
private IApiOperator CreateLocalOperator( Func <AddressFamily, SocketType, ProtocolType, ISocket> socketFactory, IRecorder recorder, IRemoteTraceMonitorСonsistent remoteTraceMonitor = default, string address = "111.111.111.111:11111") { if (remoteTraceMonitor == default) { remoteTraceMonitor = Mock.Create <IRemoteTraceMonitorСonsistent>(); } // MonitoredRemoteOperator var instructionSenderFactory = new TestInstructionSenderFactory(socketFactory, recorder); var monitoredRemoteOperatorFactory = new BaseMonitoredRemoteOperatorFactory( instructionSenderFactory, remoteTraceMonitor, recorder); // RemoteApiMap var instructionReceiverFactory = new TestInstructionReceiverFactory(socketFactory, recorder); var traceableRemoteApiMapFactory = new BaseTraceableRemoteApiMapFactory( instructionReceiverFactory, _applicationRecorder); var apiOperatorFactory = new ApiOperatorFactory(monitoredRemoteOperatorFactory, traceableRemoteApiMapFactory, _applicationRecorder); return(apiOperatorFactory.Create(address)); }
public Task Run() { _mainApplicationTask = new TaskCompletionSource <bool>(); var configuration = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); // System recorder var systemRecorder = new SystemRecorder(); _systemMessageDispatcher = systemRecorder; _systemMessageDispatcher.InterruptedWithMessage += SystemInterruptedHandler; // Application recorder _applicationRecorder = new ApplicationRecorder(systemRecorder, new MessagesCache(Int32.Parse(configuration["MESSAGE_CACHE"]))); // Remote trace monitor var remoteTraceMonitor = new RemoteTraceMonitor(new ConsoleAbstraction() , Int32.Parse(configuration["MONITOR_LINES"]), bool.Parse(configuration["SHOW_DEBUG_MESSAGES"]), systemRecorder, systemRecorder); remoteTraceMonitor.Start(); var remoteTraceMonitorСonsistent = new RemoteTraceMonitorСonsistent(remoteTraceMonitor); var remoteOperatorFactory = new BaseMonitoredRemoteOperatorFactory(new BaseInstructionSenderFactory(_applicationRecorder), remoteTraceMonitorСonsistent, _applicationRecorder, _applicationRecorder); var traceableRemoteApiMapFactory = new BaseTraceableRemoteApiMapFactory(new BaseInstructionReceiverFactory(_applicationRecorder), _applicationRecorder); var apiOperatorFactory = new ApiOperatorFactory(remoteOperatorFactory, traceableRemoteApiMapFactory, _applicationRecorder); apiOperatorFactory.Create(configuration["IP_ADDRESS"]); return(_mainApplicationTask.Task); }