public static void GetMessage(this IoBuffer buffer, ref Message obj) { ByteOrder byteOrder = buffer.Order; buffer.Order = ByteOrder.LittleEndian; obj.Header = buffer.GetHeader(); while (buffer.HasRemaining) { SubMessage submsg = buffer.GetSubMessage(); obj.SubMessages.Add(submsg); } buffer.Order = byteOrder; }
public static void PutMessage(this IoBuffer buffer, Message msg) { buffer.PutHeader(msg.Header); int position = 0; int subMessageCount = 0; foreach (SubMessage submsg in msg.SubMessages) { int subMsgStartPosition = buffer.Position; position = buffer.PutSubMessage(submsg); subMessageCount++; } // Length of last submessage is 0, @see 8.3.3.2.3 submessageLength if (subMessageCount > 0) buffer.PutInt16(position - 2, (short)0); }
public static Message GetMessage(this IoBuffer buffer) { Message obj = new Message(); buffer.GetMessage(ref obj); return obj; }
/** * Sends a Message to a Locator of this UDPWriter. * If an overflow occurs during writing of Message, only submessages that * were succesfully written will be sent. * * @param m Message to send * @return true, if Message did not fully fit into buffer of this UDPWriter */ public void SendMessage(Message m) { if (session != null) { session.Write(m); } }
/// <summary> /// </summary> public RTPSMessageEventArgs(IoSession session, Message message) : base(session) { _message = message; }