Example #1
0
        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);
        }
Example #2
0
 private SimulatedIpc(
     SimulatedStreamWriter remoteStandardInputForLocal,
     SimulatedStreamReader remoteStandardInputForRemote,
     SimulatedStreamWriter remoteStandardOutputForRemote,
     SimulatedStreamReader remoteStandardOutputForLocal,
     CancellationTokenSource cancellationTokenSource)
 {
     RemoteStandardInputForLocal   = remoteStandardInputForLocal;
     RemoteStandardInputForRemote  = remoteStandardInputForRemote;
     RemoteStandardOutputForRemote = remoteStandardOutputForRemote;
     RemoteStandardOutputForLocal  = remoteStandardOutputForLocal;
     _cancellationTokenSource      = cancellationTokenSource;
 }