protected virtual void ConvertMessageBodyToMSMQ(IMessage message, Message answer) { if (message is TextMessage) { TextMessage textMessage = message as TextMessage; byte[] buf = Encoding.UTF32.GetBytes(textMessage.Text); answer.BodyStream.Write(buf, 0, buf.Length); answer.AppSpecific = (int)NMSMessageType.TextMessage; } else if (message is BytesMessage) { BytesMessage bytesMessage = message as BytesMessage; answer.BodyStream.Write(bytesMessage.Content, 0, bytesMessage.Content.Length); answer.AppSpecific = (int)NMSMessageType.BytesMessage; } else if (message is ObjectMessage) { ObjectMessage objectMessage = message as ObjectMessage; answer.Body = objectMessage.Body; answer.AppSpecific = (int)NMSMessageType.ObjectMessage; } else if (message is MapMessage) { MapMessage mapMessage = message as MapMessage; PrimitiveMap mapBody = mapMessage.Body as PrimitiveMap; byte[] buf = mapBody.Marshal(); answer.BodyStream.Write(buf, 0, buf.Length); answer.AppSpecific = (int)NMSMessageType.MapMessage; } else if (message is StreamMessage) { StreamMessage streamMessage = message as StreamMessage; answer.AppSpecific = (int)NMSMessageType.StreamMessage; // TODO: Implement } else if (message is BaseMessage) { answer.AppSpecific = (int)NMSMessageType.BaseMessage; } else { throw new Exception("unhandled message type"); } }
public ITextMessage CreateTextMessage(string text) { TextMessage answer = new TextMessage(text); return(answer); }
public ITextMessage CreateTextMessage() { TextMessage answer = new TextMessage(); return(answer); }
/// <summary> /// Creates an NMS message of appropriate type for the specified MSMQ /// message, and convert the message body if specified. /// </summary> /// <param name="message">MSMQ message.</param> /// <param name="convertBody">true if the message body must be /// converted.</param> /// <result>NMS message created for retrieving the MSMQ message.</result> protected virtual BaseMessage CreateNmsMessage(Message message, bool convertBody) { BaseMessage result = null; if ((int)NMSMessageType.TextMessage == message.AppSpecific) { TextMessage textMessage = new TextMessage(); if (convertBody) { ConvertTextMessageBodyToNMS(message, textMessage); } result = textMessage; } else if ((int)NMSMessageType.BytesMessage == message.AppSpecific) { BytesMessage bytesMessage = new BytesMessage(); if (convertBody) { ConvertBytesMessageBodyToNMS(message, bytesMessage); } result = bytesMessage; } else if ((int)NMSMessageType.ObjectMessage == message.AppSpecific) { ObjectMessage objectMessage = new ObjectMessage(); if (convertBody) { ConvertObjectMessageBodyToNMS(message, objectMessage); } result = objectMessage; } else if ((int)NMSMessageType.MapMessage == message.AppSpecific) { MapMessage mapMessage = new MapMessage(); if (convertBody) { ConvertMapMessageBodyToNMS(message, mapMessage); } result = mapMessage; } else if ((int)NMSMessageType.StreamMessage == message.AppSpecific) { StreamMessage streamMessage = new StreamMessage(); if (convertBody) { ConvertStreamMessageBodyToNMS(message, streamMessage); } result = streamMessage; } else { BaseMessage baseMessage = new BaseMessage(); result = baseMessage; } result.ReadOnlyBody = true; return(result); }
protected virtual BaseMessage CreateNmsMessage(Message message) { BaseMessage result = null; if ((int)NMSMessageType.TextMessage == message.AppSpecific) { TextMessage textMessage = new TextMessage(); string content = String.Empty; if (message.BodyStream != null && message.BodyStream.Length > 0) { byte[] buf = null; buf = new byte[message.BodyStream.Length]; message.BodyStream.Read(buf, 0, buf.Length); content = Encoding.UTF32.GetString(buf); } textMessage.Text = content; result = textMessage; } else if ((int)NMSMessageType.BytesMessage == message.AppSpecific) { byte[] buf = null; if (message.BodyStream != null && message.BodyStream.Length > 0) { buf = new byte[message.BodyStream.Length]; message.BodyStream.Read(buf, 0, buf.Length); } BytesMessage bytesMessage = new BytesMessage(); bytesMessage.Content = buf; result = bytesMessage; } else if ((int)NMSMessageType.ObjectMessage == message.AppSpecific) { ObjectMessage objectMessage = new ObjectMessage(); objectMessage.Body = message.Body; result = objectMessage; } else if ((int)NMSMessageType.MapMessage == message.AppSpecific) { byte[] buf = null; if (message.BodyStream != null && message.BodyStream.Length > 0) { buf = new byte[message.BodyStream.Length]; message.BodyStream.Read(buf, 0, buf.Length); } MapMessage mapMessage = new MapMessage(); mapMessage.Body = PrimitiveMap.Unmarshal(buf); result = mapMessage; } else if ((int)NMSMessageType.StreamMessage == message.AppSpecific) { StreamMessage streamMessage = new StreamMessage(); // TODO: Implement result = streamMessage; } else { BaseMessage baseMessage = new BaseMessage(); result = baseMessage; } return(result); }