Exemple #1
0
        /**
         * @param msg
         */
        protected void CheckResultsMatch(FudgeMsg msg, FudgeContext fudgeContext)
        {
            FudgeMsgEnvelope result = CycleMessage(fudgeContext, msg);

            Assert.NotNull(result);
            Assert.NotNull(result.Message);
            FudgeMsg resultMsg = result.Message;

            FudgeUtils.AssertAllFieldsMatch(msg, resultMsg);
        }
        protected static FudgeMsg CycleMessage(FudgeMsg msg) //throws IOException
        {
            byte[] content = fudgeContext.ToByteArray(msg);
            // Double-check the size calc was right
            Assert.Equal(content.Length, new FudgeMsgEnvelope(msg).ComputeSize(null));

            MemoryStream     stream2           = new MemoryStream(content);
            FudgeMsgEnvelope outputMsgEnvelope = fudgeContext.Deserialize(stream2);

            Assert.NotNull(outputMsgEnvelope);
            Assert.NotNull(outputMsgEnvelope.Message);
            return(outputMsgEnvelope.Message);
        }
        private FudgeMsg CycleMessage(FudgeMsg msg, FudgeContext context, short?taxonomy)
        {
            MemoryStream outputStream = new MemoryStream();

            context.Serialize(msg, taxonomy, outputStream);

            byte[] content = outputStream.ToArray();

            MemoryStream     inputStream       = new MemoryStream(content);
            FudgeMsgEnvelope outputMsgEnvelope = context.Deserialize(inputStream);

            Assert.NotNull(outputMsgEnvelope);
            Assert.NotNull(outputMsgEnvelope.Message);
            return(outputMsgEnvelope.Message);
        }
 public object DecodeObject(FudgeMsgEnvelope fudgeMsgEnvelope)
 {
     if (_checkSeqNumber)
     {
         long?seqNumber = fudgeMsgEnvelope.Message.GetLong("#");
         if (!seqNumber.HasValue)
         {
             throw new ArgumentException("Couldn't find sequence number");
         }
         long expectedSeqNumber = Interlocked.Increment(ref _lastSequenceNumber);
         if (expectedSeqNumber != seqNumber.Value)
         {
             throw new ArgumentException(string.Format("Unexpected SEQ number {0} expected {1}", seqNumber,
                                                       expectedSeqNumber));
         }
     }
     return(_fudgeContext.DeFudgeSerialize(fudgeMsgEnvelope.Message));
 }