X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Runtime.Remoting%2FSystem.Runtime.Remoting.Channels%2FSoapClientFormatterSink.cs;h=88058e6fb4c87b4747ea0a82a6d6973688859fa9;hb=20d845ca07479ece43da9e344c060e49887fd369;hp=a1cdbd5beb467efc741d1356049a40fa872e479b;hpb=a097b5471761180c4aae2dab224ed9caeeae3e86;p=mono.git diff --git a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/SoapClientFormatterSink.cs b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/SoapClientFormatterSink.cs index a1cdbd5beb4..88058e6fb4c 100644 --- a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/SoapClientFormatterSink.cs +++ b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/SoapClientFormatterSink.cs @@ -44,36 +44,32 @@ namespace System.Runtime.Remoting.Channels private IClientChannelSink _nextChannelSink; private SoapCore _soapCore = SoapCore.DefaultInstance; - public SoapClientFormatterSink (IClientChannelSink sink) + public SoapClientFormatterSink (IClientChannelSink nextSink) { - _nextChannelSink = sink; + _nextChannelSink = nextSink; } - internal SoapCore SoapCore - { + internal SoapCore SoapCore { get { return _soapCore; } set { _soapCore = value; } } // IClientChannelSink - public IClientChannelSink NextChannelSink - { + public IClientChannelSink NextChannelSink { get { return _nextChannelSink; } } // IMessageSink - public IMessageSink NextSink - { + public IMessageSink NextSink { get { return null ; } } // IChannelSinkBase - public IDictionary Properties - { + public IDictionary Properties { get { return null; } @@ -86,12 +82,13 @@ namespace System.Runtime.Remoting.Channels ITransportHeaders requestHeaders; SoapMessageFormatter soapMsgFormatter; - SerializeMessage(msg, out requestStream, out requestHeaders, out soapMsgFormatter); + SerializeMessage (msg, out requestStream, out requestHeaders, + out soapMsgFormatter); - ClientChannelSinkStack stack = new ClientChannelSinkStack(replySink); + ClientChannelSinkStack stack = new ClientChannelSinkStack (replySink); stack.Push(this, new CallData (msg, soapMsgFormatter)); - _nextChannelSink.AsyncProcessRequest(stack, msg, requestHeaders, requestStream); + _nextChannelSink.AsyncProcessRequest (stack, msg, requestHeaders, requestStream); return null; } @@ -110,10 +107,12 @@ namespace System.Runtime.Remoting.Channels ITransportHeaders headers, Stream stream) { - CallData data = (CallData)state; + CallData data = (CallData) state; SoapMessageFormatter soapMsgFormatter = data.Formatter; - IMessage replyMessage = (IMessage) DeserializeMessage(stream, headers, (IMethodCallMessage)data.Msg, soapMsgFormatter); - sinkStack.DispatchReplyMessage(replyMessage); + IMessage replyMessage = (IMessage) DeserializeMessage ( + stream, headers, (IMethodCallMessage) data.Msg, + soapMsgFormatter); + sinkStack.DispatchReplyMessage (replyMessage); } @@ -142,30 +141,36 @@ namespace System.Runtime.Remoting.Channels Stream requestStream, responseStream; ITransportHeaders requestHeaders, responseHeaders; SoapMessageFormatter soapMsgFormatter; - - SerializeMessage(msg, out requestStream, out requestHeaders, out soapMsgFormatter); - _nextChannelSink.ProcessMessage(msg, requestHeaders, requestStream, out responseHeaders, out responseStream); - return DeserializeMessage(responseStream, responseHeaders, (IMethodCallMessage)msg, soapMsgFormatter); + SerializeMessage (msg, out requestStream, out requestHeaders, + out soapMsgFormatter); + _nextChannelSink.ProcessMessage(msg, requestHeaders, + requestStream, out responseHeaders, + out responseStream); + + return DeserializeMessage(responseStream, responseHeaders, + (IMethodCallMessage) msg, soapMsgFormatter); } private void SerializeMessage(IMessage msg, out Stream requestStream, out ITransportHeaders requestHeaders, out SoapMessageFormatter soapMsgFormatter) { SoapMessage soapMsg; soapMsgFormatter = new SoapMessageFormatter(); - soapMsg = soapMsgFormatter.BuildSoapMessageFromMethodCall((IMethodCallMessage) msg, out requestHeaders); - + soapMsg = soapMsgFormatter.BuildSoapMessageFromMethodCall ( + (IMethodCallMessage) msg, out requestHeaders); + // Get the stream where the message will be serialized - requestStream = _nextChannelSink.GetRequestStream(msg, requestHeaders); - - if(requestStream == null) requestStream = new MemoryStream(); - + requestStream = _nextChannelSink.GetRequestStream (msg, + requestHeaders); + + if (requestStream == null) + requestStream = new MemoryStream(); + // Serialize the message into the stream _soapCore.Serializer.Serialize(requestStream, soapMsg, null); - - if(requestStream is MemoryStream){ + + if (requestStream is MemoryStream) requestStream.Position = 0; - } } @@ -176,7 +181,7 @@ namespace System.Runtime.Remoting.Channels fm.TopObject = rtnMessage; object objReturn = fm.Deserialize(responseStream); - if (objReturn is SoapFault) + if (objReturn is SoapFault) return soapMsgFormatter.FormatFault ((SoapFault) objReturn, mcm); else return soapMsgFormatter.FormatResponse ((ISoapMessage) objReturn, mcm); @@ -184,7 +189,12 @@ namespace System.Runtime.Remoting.Channels class CallData { - public CallData (IMessage msg, SoapMessageFormatter formatter) { Msg = msg; Formatter = formatter; } + public CallData (IMessage msg, SoapMessageFormatter formatter) + { + Msg = msg; + Formatter = formatter; + } + public IMessage Msg; public SoapMessageFormatter Formatter; }