internal void InternalProcessMessage(Ice.Endpoint replyEp, Stream msgStream, Ice.MessageType mtype) { // at this point, the ice header has been read, but nothing higher. // we don't know very much about this message; we pass it up // to (presumably) the formatter for further evaluation TransportHeaders headers = new TransportHeaders(); headers ["__iceMessageType"] = mtype; headers ["__iceEndpoint"] = replyEp; IMessage respMessage; ITransportHeaders respHeaders; Stream respStream; ServerProcessing res = _next.ProcessMessage(null, null, headers, msgStream, out respMessage, out respHeaders, out respStream); switch (res) { case ServerProcessing.Complete: if (!(respHeaders != null && respHeaders["__iceNoReply"] != null && ((bool)respHeaders["__iceNoReply"]))) { lock (replyEp.Stream) { MemoryStream ms = respStream as MemoryStream; ms.WriteTo(replyEp.Stream); } } break; case ServerProcessing.Async: throw new NotImplementedException(); case ServerProcessing.OneWay: // do nothing break; } }
private void MessageRequestHandler(Ice.Endpoint e, Stream msgStream, Ice.MessageType mtype) { _sink.InternalProcessMessage(e, msgStream, mtype); }