/// <summary>reads an incoming Giop reply message from the Message input stream msgInput</summary> /// <remarks>Precondition: sourceStream contains a Giop reply Msg</remarks> /// <returns>the .NET reply Msg created from the Giop Reply</returns> internal IMessage ParseIncomingReplyMessage(CdrMessageInputStream msgInput, IMethodCallMessage requestMessage, GiopClientConnectionDesc conDesc) { Debug.WriteLine("receive reply message at client side"); CdrInputStream msgBody = msgInput.GetMessageContentReadingStream(); GiopClientRequest request = new GiopClientRequest(requestMessage, conDesc, m_interceptionOptions); if (request.IsAsyncRequest) { try { // with respec to interception, this is a new request -> call again send_request interception before reply request.PrepareSecondAscyncInterception(); request.InterceptSendRequest(); } catch (Exception ex) { request.Reply = new ReturnMessage(ex, requestMessage); Exception newException = request.InterceptReceiveException(ex); if (newException == ex) { throw; } else { throw newException; // exeption has been changed by interception point } } } // deserialize message body IMessage result = m_ser.DeserialiseReply(msgBody, msgInput.Header.Version, request, conDesc); return(result); }
/// <summary> /// reads a locate-request message. /// </summary> internal LocateRequestMessage ParseIncomingLocateRequestMessage(CdrMessageInputStream msgInput) { CdrInputStream msgBody = msgInput.GetMessageContentReadingStream(); // deserialize message body LocateRequestMessage result = m_ser.DeserialiseLocateRequest(msgBody, msgInput.Header.Version); Debug.WriteLine("locate request for target-uri: " + result.TargetUri); return(result); }
/// <summary>reads an incoming Giop request-message from the message input stream msgInput</summary> /// <returns>the .NET request message created from this Giop-message</returns> internal IMessage ParseIncomingRequestMessage(CdrMessageInputStream msgInput, GiopConnectionDesc conDesc) { CdrInputStream msgBody = msgInput.GetMessageContentReadingStream(); // deserialize the message body (the GIOP-request id is included in this message) return(m_ser.DeserialiseRequest(msgBody, msgInput.Header.Version, conDesc, m_interceptionOptions)); }
/// <summary> /// reads a locate-request message. /// </summary> internal LocateRequestMessage ParseIncomingLocateRequestMessage(CdrMessageInputStream msgInput) { CdrInputStream msgBody = msgInput.GetMessageContentReadingStream(); // deserialize message body LocateRequestMessage result = m_ser.DeserialiseLocateRequest(msgBody, msgInput.Header.Version); Debug.WriteLine("locate request for target-uri: " + result.TargetUri); return result; }
/// <summary>reads an incoming Giop request-message from the message input stream msgInput</summary> /// <returns>the .NET request message created from this Giop-message</returns> internal IMessage ParseIncomingRequestMessage(CdrMessageInputStream msgInput, GiopConnectionDesc conDesc) { CdrInputStream msgBody = msgInput.GetMessageContentReadingStream(); // deserialize the message body (the GIOP-request id is included in this message) return m_ser.DeserialiseRequest(msgBody, msgInput.Header.Version, conDesc, m_interceptionOptions); }
/// <summary>reads an incoming Giop reply message from the Message input stream msgInput</summary> /// <remarks>Precondition: sourceStream contains a Giop reply Msg</remarks> /// <returns>the .NET reply Msg created from the Giop Reply</returns> internal IMessage ParseIncomingReplyMessage(CdrMessageInputStream msgInput, IMethodCallMessage requestMessage, GiopClientConnectionDesc conDesc) { Debug.WriteLine("receive reply message at client side"); CdrInputStream msgBody = msgInput.GetMessageContentReadingStream(); GiopClientRequest request = new GiopClientRequest(requestMessage, conDesc, m_interceptionOptions); if (request.IsAsyncRequest) { try { // with respec to interception, this is a new request -> call again send_request interception before reply request.PrepareSecondAscyncInterception(); request.InterceptSendRequest(); } catch (Exception ex) { request.Reply = new ReturnMessage(ex, requestMessage); Exception newException = request.InterceptReceiveException(ex); if (newException == ex) { throw; } else { throw newException; // exeption has been changed by interception point } } } // deserialize message body IMessage result = m_ser.DeserialiseReply(msgBody, msgInput.Header.Version, request, conDesc); return result; }