Exemplo n.º 1
0
		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;
		}
Exemplo n.º 2
0
		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;
		}
Exemplo n.º 3
0
        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);
        }