public static MessageContainer FromMessage (Message message) { MessageContainer container = new MessageContainer (message) { Path = (ObjectPath)message.Header[FieldCode.Path], Interface = (string)message.Header[FieldCode.Interface], Member = (string)message.Header[FieldCode.Member], Destination = (string)message.Header[FieldCode.Destination], //TODO: filled by the bus so reliable, but not the case for p2p //so we make it optional here, but this needs some more thought //if (message.Header.Fields.ContainsKey (FieldCode.Sender)) Sender = (string)message.Header[FieldCode.Sender], ErrorName = (string)message.Header[FieldCode.ErrorName], ReplySerial = (uint?)message.Header[FieldCode.ReplySerial], Signature = message.Signature, Serial = message.Header.Serial, Type = message.Header.MessageType, }; #if PROTO_REPLY_SIGNATURE //TODO: note that an empty ReplySignature should really be treated differently to the field not existing! if (message.Header.Fields.ContainsKey (FieldCode.ReplySignature)) container.ReplySignature = (Signature)message.Header[FieldCode.ReplySignature]; else container.ReplySignature = Signature.Empty; #endif return container; }
public Message CreateError (string errorName, string errorMessage) { var message = Message; MessageContainer error = new MessageContainer { Type = MessageType.Error, ErrorName = errorName, ReplySerial = message.Header.Serial, Signature = Signature.StringSig, Destination = Sender }; MessageWriter writer = new MessageWriter (message.Header.Endianness); writer.Write (errorMessage); message = error.Message; message.AttachBodyTo (writer); return message; }
public Message CreateError(string errorName, string errorMessage) { var message = Message; MessageContainer error = new MessageContainer { Type = MessageType.Error, ErrorName = errorName, ReplySerial = message.Header.Serial, Signature = Signature.StringSig, Destination = Sender }; MessageWriter writer = new MessageWriter(message.Header.Endianness); writer.Write(errorMessage); message = error.Message; message.AttachBodyTo(writer); return(message); }