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>(); // 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); }
internal static TraceableRemoteApiMapWrapperRealSockets ArrangeRemoteApiMapTestWrapperWithRealSockets( string address) { var recorder = new ApplicationCacheRecorder(); var sockets = new List <SocketTesterWrapper>(); var socketFactoryCounter = 0; var apiMapWrapper = default(TraceableRemoteApiMapWrapperRealSockets); void OnAccepted(SocketTesterWrapper wrapper) { sockets.Add(wrapper); apiMapWrapper.SocketAcceptedHandler?.Invoke(wrapper); } Func <AddressFamily, SocketType, ProtocolType, ISocket> socketFactory = (family, type, arg3) => { socketFactoryCounter++; var socket = new SocketTesterWrapper(family, type, arg3, $"{socketFactoryCounter}"); socket.Accepted += OnAccepted; sockets.Add(socket); return(socket); }; // RemoteApiMap var instructionReceiverFactory = new TestInstructionReceiverFactory(socketFactory, recorder); var traceableRemoteApiMapFactory = new BaseTraceableRemoteApiMapFactory( instructionReceiverFactory, recorder); var apiMap = traceableRemoteApiMapFactory.Create(address); apiMapWrapper = new TraceableRemoteApiMapWrapperRealSockets(sockets, apiMap, recorder); return(apiMapWrapper); }
private (ITraceableRemoteApiMap, Dictionary <string, SocketTester>) ArrangeRemoteApiMapWithSockets( IApplicationRecorder applicationRecorder, IRecorder recorder, SocketTester socketConnecter, string address) { var sockets = new Dictionary <string, SocketTester>(); var socketListener = new SocketTester("listener"); var socketAccepted = new SocketTester("accepted"); var socketFactory = ArrangeSocketFactoryTraceableRemoteApiMap(socketConnecter, socketListener, socketAccepted, isRemote: true); // RemoteApiMap var instructionReceiverFactory = new TestInstructionReceiverFactory(socketFactory, recorder); var traceableRemoteApiMapFactory = new BaseTraceableRemoteApiMapFactory( instructionReceiverFactory, applicationRecorder); sockets.Add("connecter", socketConnecter); sockets.Add("listener", socketListener); sockets.Add("accepted", socketAccepted); var apiMap = traceableRemoteApiMapFactory.Create(address); return(apiMap, sockets); }
public IServiceRunner Build(Func <ITraceableRemoteApiMap, IApplicationRecorder, IRunnable> setupCore) { var configuration = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); // System recorder var systemRecorder = new SystemRecorder(); systemRecorder.InterruptedWithMessage += SystemInterruptedHandler; // Application recorder var applicationRecorder = new ApplicationRecorder( systemRecorder, new MessagesCache(Int32.Parse(configuration["MESSAGE_CACHE"]))); var traceableRemoteApiMapFactory = new BaseTraceableRemoteApiMapFactory(new BaseInstructionReceiverFactory(applicationRecorder), applicationRecorder); var map = traceableRemoteApiMapFactory.Create(configuration["IP_ADDRESS"]); _core = setupCore?.Invoke(map, applicationRecorder); return(this); }
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); }