private static void CreateSimulatedIpcChannel(CancellationToken cancellationToken, out SimulatedStreamWriter streamWriter, out SimulatedStreamReader streamReader) { var memoryStream = new MemoryStream(); var readWriteSemaphore = new SemaphoreSlim(initialCount: 1, maxCount: 1); var dataWrittenEvent = new ManualResetEventSlim(initialState: false); var inboundStream = new SimulatedReadOnlyFileStream(memoryStream, readWriteSemaphore, dataWrittenEvent, cancellationToken); var outboundStream = new SimulatedWriteOnlyFileStream(memoryStream, readWriteSemaphore, dataWrittenEvent, cancellationToken); streamWriter = new SimulatedStreamWriter(outboundStream); streamReader = new SimulatedStreamReader(inboundStream); }
private SimulatedIpc( SimulatedStreamWriter remoteStandardInputForLocal, SimulatedStreamReader remoteStandardInputForRemote, SimulatedStreamWriter remoteStandardOutputForRemote, SimulatedStreamReader remoteStandardOutputForLocal, CancellationTokenSource cancellationTokenSource) { RemoteStandardInputForLocal = remoteStandardInputForLocal; RemoteStandardInputForRemote = remoteStandardInputForRemote; RemoteStandardOutputForRemote = remoteStandardOutputForRemote; RemoteStandardOutputForLocal = remoteStandardOutputForLocal; _cancellationTokenSource = cancellationTokenSource; }