/// <exception cref="System.IO.IOException"/> public virtual void syncServer(RequestFactory requestFactory, ResponseFactory responseFactory, Compression compression, long iters) { BufferedOutputStreamWrapper outBuffered = new BufferedOutputStreamWrapper(new FileDescriptor(Console.OpenStandardOutput())); BufferedInputStreamWrapper inBuffered = new BufferedInputStreamWrapper(new FileDescriptor(Console.OpenStandardInput())); for (int ii = 0; ii < iters; ++ii) { MessageBuilder responseMessage = new MessageBuilder(); { ResponseBuilder response = responseMessage.InitRoot(responseFactory); MessageReader messageReader = compression.newBufferedReader(inBuffered); RequestReader request = messageReader.GetRoot(requestFactory); this.handleRequest(request, response); } compression.writeBuffered(outBuffered, responseMessage); } }
/// <exception cref="System.IO.IOException"/> public virtual void syncClient(RequestFactory requestFactory, ResponseFactory responseFactory, Compression compression, long iters) { Common.FastRand rng = new Common.FastRand(); BufferedOutputStreamWrapper outBuffered = new BufferedOutputStreamWrapper(new FileDescriptor(Console.OpenStandardOutput())); BufferedInputStreamWrapper inBuffered = new BufferedInputStreamWrapper(new FileDescriptor(Console.OpenStandardInput())); for (int ii = 0; ii < iters; ++ii) { MessageBuilder requestMessage = new MessageBuilder(); RequestBuilder request = requestMessage.InitRoot(requestFactory); Expectation expected = this.setupRequest(rng, request); compression.writeBuffered(outBuffered, requestMessage); MessageReader messageReader = compression.newBufferedReader(inBuffered); ResponseReader response = messageReader.GetRoot(responseFactory); if (!this.checkResponse(response, expected)) { throw new System.Exception("incorrect response"); } } }