Exemplo n.º 1
0
        public static BinaryEnvelope FromQueue(Queue <byte[]> queue)
        {
            var binary = new BinaryEnvelope();

            binary.Header = queue.Dequeue();

            while (queue.Count != 0)
            {
                var binaryMessageEnvelope = new BinaryMessageEnvelope();
                binaryMessageEnvelope.Header  = queue.Dequeue();
                binaryMessageEnvelope.Message = queue.Dequeue();
                binary.AddBinaryMessageEnvelope(binaryMessageEnvelope);
            }

            return(binary);
        }
Exemplo n.º 2
0
        private BinaryMessageEnvelope WriteMessageEnvelope(MessageEnvelope messageEnvelope)
        {
            var binaryMessageEnvelope = new BinaryMessageEnvelope();

            using (var headerMemory = new MemoryStream())
            {
                _serializer.Model.SerializeWithLengthPrefix(headerMemory, messageEnvelope.Header, typeof(MessageHeader), PrefixStyle.Base128, 0);
                binaryMessageEnvelope.Header = headerMemory.ToArray();
            }

            using (var messageMemory = new MemoryStream())
            {
                _serializer.Model.SerializeWithLengthPrefix(messageMemory, messageEnvelope.Message, messageEnvelope.Message.GetType(), PrefixStyle.Base128, 0);
                binaryMessageEnvelope.Message = messageMemory.ToArray();
            }

            return(binaryMessageEnvelope);
        }
Exemplo n.º 3
0
        private MessageEnvelope ReadMessageEnvelope(BinaryMessageEnvelope binaryMessageEnvelope)
        {
            MessageHeader messageHeader = null;
            IMessage      message       = null;

            using (var headerMemory = new MemoryStream(binaryMessageEnvelope.Header))
            {
                messageHeader = (MessageHeader)_serializer.Model.DeserializeWithLengthPrefix(headerMemory, null, typeof(MessageHeader), PrefixStyle.Base128, 0, null);
            }

            var messageType = _tagToTypeResolver(messageHeader.MessageTag);

            using (var messageMemory = new MemoryStream(binaryMessageEnvelope.Message))
            {
                message = (IMessage)_serializer.Model.DeserializeWithLengthPrefix(messageMemory, null, messageType, PrefixStyle.Base128, 0, null);
            }

            return(new MessageEnvelope(messageHeader, message));
        }
Exemplo n.º 4
0
 public BinaryEnvelope AddBinaryMessageEnvelope(BinaryMessageEnvelope binaryMessageEnvelope, Action <Header> headerMutation)
 {
     binaryMessageEnvelope.MutateHeader(headerMutation);
     return(AddBinaryMessageEnvelope(binaryMessageEnvelope));
 }
Exemplo n.º 5
0
 public BinaryEnvelope AddBinaryMessageEnvelope(BinaryMessageEnvelope binaryMessageEnvelope)
 {
     MessageEnvelopes.Add(binaryMessageEnvelope);
     return(this);
 }
Exemplo n.º 6
0
 public MessageEnvelope DeserializeMessageEnvelope(BinaryMessageEnvelope binaryMessageEnvelope)
 {
     return(ReadMessageEnvelope(binaryMessageEnvelope));
 }