Example #1
0
        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;
            }
        }
Example #2
0
 private void MessageRequestHandler(Ice.Endpoint e,
                                    Stream msgStream,
                                    Ice.MessageType mtype)
 {
     _sink.InternalProcessMessage(e, msgStream, mtype);
 }