Пример #1
0
        public static int Decode(MessageHeader messageHeader,
                                 MarketDataIncrementalRefreshTrades marketData,
                                 DirectBuffer buffer,
                                 int bufferIndex)
        {
            messageHeader.Wrap(buffer, bufferIndex, 0);

            int actingVersion     = messageHeader.Version;
            int actingBlockLength = messageHeader.BlockLength;

            marketData.WrapForDecode(buffer, bufferIndex + MessageHeader.Size, actingBlockLength, actingVersion);

            var transactTime        = marketData.TransactTime;
            var matchEventIndicator = marketData.MatchEventIndicator;

            var mdIncGrpGroup = marketData.MdIncGrp;

            while (mdIncGrpGroup.HasNext)
            {
                mdIncGrpGroup.Next();
                var tradeId        = mdIncGrpGroup.TradeId;
                var securityId     = mdIncGrpGroup.SecurityId;
                var mantissa       = mdIncGrpGroup.MdEntryPx.Mantissa;
                var i              = mdIncGrpGroup.MdEntrySize.Mantissa;
                var numberOfOrders = mdIncGrpGroup.NumberOfOrders;
                var mdUpdateAction = mdIncGrpGroup.MdUpdateAction;
                var rptSeq         = mdIncGrpGroup.RptSeq;
                var aggressorSide  = mdIncGrpGroup.AggressorSide;
                var mdEntryType    = mdIncGrpGroup.MdEntryType;
            }

            return(marketData.Size);
        }
Пример #2
0
        public static long Decode(MarketDataIncrementalRefreshTrades.Builder marketData,
                                  byte[] input)
        {
            var builder = MarketDataIncrementalRefreshTrades.CreateBuilder();

            marketData.Clear();
            builder.MergeFrom(input).Build();

            ulong transactTime   = marketData.TransactTime;
            uint  eventTimeDelta = marketData.EventTimeDelta;

            MarketDataIncrementalRefreshTrades.Types.MatchEventIndicator matchEventIndicator =
                marketData.MatchEventIndicator;

            foreach (MdIncGrp mdIncGrp in marketData.MdIncGroupList)
            {
                ulong tradeId        = mdIncGrp.TradeId;
                ulong securityId     = mdIncGrp.SecurityId;
                long  mantissa       = mdIncGrp.MdEntryPx.Mantissa;
                int   i              = mdIncGrp.MdEntrySize.Mantissa;
                uint  numberOfOrders = mdIncGrp.NumberOfOrders;
                MdIncGrp.Types.MdUpdateAction mdUpdateAction = mdIncGrp.MdUpdateAction;
                uint repSeq = mdIncGrp.RepSeq;
                MdIncGrp.Types.Side        aggressorSide = mdIncGrp.AggressorSide;
                MdIncGrp.Types.MdEntryType mdEntryType   = mdIncGrp.MdEntryType;
            }

            return(input.Length);
        }
        public static long Decode(MarketDataIncrementalRefreshTrades.Builder marketData,
            byte[] input)
        {
            var builder = MarketDataIncrementalRefreshTrades.CreateBuilder();

            marketData.Clear();
            builder.MergeFrom(input).Build();

            ulong transactTime = marketData.TransactTime;
            uint eventTimeDelta = marketData.EventTimeDelta;
            MarketDataIncrementalRefreshTrades.Types.MatchEventIndicator matchEventIndicator =
                marketData.MatchEventIndicator;

            foreach (MdIncGrp mdIncGrp in marketData.MdIncGroupList)
            {
                ulong tradeId = mdIncGrp.TradeId;
                ulong securityId = mdIncGrp.SecurityId;
                long mantissa = mdIncGrp.MdEntryPx.Mantissa;
                int i = mdIncGrp.MdEntrySize.Mantissa;
                uint numberOfOrders = mdIncGrp.NumberOfOrders;
                MdIncGrp.Types.MdUpdateAction mdUpdateAction = mdIncGrp.MdUpdateAction;
                uint repSeq = mdIncGrp.RepSeq;
                MdIncGrp.Types.Side aggressorSide = mdIncGrp.AggressorSide;
                MdIncGrp.Types.MdEntryType mdEntryType = mdIncGrp.MdEntryType;
            }

            return input.Length;
        }
Пример #4
0
        public GpbBenchmarkState()
        {
            Marketdata = MarketDataIncrementalRefreshTrades.CreateBuilder();
            var input = new MemoryStream();

            GpbMarketDataBenchmark.Encode(Marketdata, input);
            In = input.ToArray();

            var outBuffer = new Byte[1024];

            Out = new MemoryStream(outBuffer);
        }
Пример #5
0
        public static int Encode(MessageHeader messageHeader,
                                 MarketDataIncrementalRefreshTrades marketData,
                                 DirectBuffer buffer,
                                 int bufferIndex)
        {
            messageHeader.Wrap(buffer, bufferIndex, 0);
            messageHeader.BlockLength = MarketDataIncrementalRefreshTrades.BlockLength;
            messageHeader.TemplateId  = MarketDataIncrementalRefreshTrades.TemplateId;
            messageHeader.SchemaId    = MarketDataIncrementalRefreshTrades.SchemaId;
            messageHeader.Version     = MarketDataIncrementalRefreshTrades.Schema_Version;

            marketData.WrapForEncode(buffer, bufferIndex + MessageHeader.Size);
            marketData.TransactTime        = 1234L;
            marketData.EventTimeDelta      = 987;
            marketData.MatchEventIndicator = MatchEventIndicator.END_EVENT;

            var mdIncGrp = marketData.MdIncGrpCount(2);

            mdIncGrp.Next();
            mdIncGrp.TradeId              = 1234L;
            mdIncGrp.SecurityId           = 56789L;
            mdIncGrp.MdEntryPx.Mantissa   = 50;
            mdIncGrp.MdEntrySize.Mantissa = 10;
            mdIncGrp.NumberOfOrders       = 1;
            mdIncGrp.MdUpdateAction       = MDUpdateAction.NEW;
            mdIncGrp.RptSeq        = 1;
            mdIncGrp.AggressorSide = Side.BUY;
            mdIncGrp.MdEntryType   = MDEntryType.BID;

            mdIncGrp.Next();
            mdIncGrp.TradeId              = 1234L;
            mdIncGrp.SecurityId           = 56789L;
            mdIncGrp.MdEntryPx.Mantissa   = 50;
            mdIncGrp.MdEntrySize.Mantissa = 10;
            mdIncGrp.NumberOfOrders       = 1;
            mdIncGrp.MdUpdateAction       = MDUpdateAction.NEW;
            mdIncGrp.RptSeq        = 1;
            mdIncGrp.AggressorSide = Side.SELL;
            mdIncGrp.MdEntryType   = MDEntryType.OFFER;

            return(marketData.Size);
        }
        public static long Encode(MarketDataIncrementalRefreshTrades.Builder marketData, Stream output)
        {
            output.Position = 0;

            marketData.Clear()
                .SetTransactTime(1234L)
                .SetEventTimeDelta(987)
                .SetMatchEventIndicator(MarketDataIncrementalRefreshTrades.Types.MatchEventIndicator.END_EVENT);

            MdIncGrp.Builder groupBuilder = MdIncGrp.CreateBuilder();
            groupBuilder.SetTradeId(1234L);
            groupBuilder.SetSecurityId(56789L);
            groupBuilder.SetMdEntryPx(Decimal64.CreateBuilder().SetMantissa(50));
            groupBuilder.SetMdEntrySize(IntQty32.CreateBuilder().SetMantissa(10));
            groupBuilder.SetNumberOfOrders(1);
            groupBuilder.SetMdUpdateAction(MdIncGrp.Types.MdUpdateAction.NEW);
            groupBuilder.SetRepSeq(1);
            groupBuilder.SetAggressorSide(MdIncGrp.Types.Side.BUY);
            groupBuilder.SetMdEntryType(MdIncGrp.Types.MdEntryType.BID);
            marketData.AddMdIncGroup(groupBuilder);

            groupBuilder = MdIncGrp.CreateBuilder();
            groupBuilder.SetTradeId(1234L);
            groupBuilder.SetSecurityId(56789L);
            groupBuilder.SetMdEntryPx(Decimal64.CreateBuilder().SetMantissa(50));
            groupBuilder.SetMdEntrySize(IntQty32.CreateBuilder().SetMantissa(10));
            groupBuilder.SetNumberOfOrders(1);
            groupBuilder.SetMdUpdateAction(MdIncGrp.Types.MdUpdateAction.NEW);
            groupBuilder.SetRepSeq(1);
            groupBuilder.SetAggressorSide(MdIncGrp.Types.Side.SELL);
            groupBuilder.SetMdEntryType(MdIncGrp.Types.MdEntryType.OFFER);
            marketData.AddMdIncGroup(groupBuilder);

            marketData.Build().WriteTo(output);

            return output.Position;
        }