private void OnEvent(IntPtr snapshotDataPtr, IntPtr userData) { DxSnapshotData snapshotData = (DxSnapshotData)Marshal.PtrToStructure(snapshotDataPtr, typeof(DxSnapshotData)); switch (snapshotData.event_type) { case EventType.Order: var orderBuf = NativeBufferFactory.CreateOrderBuf(snapshotData.symbol, snapshotData.records, snapshotData.records_count, null); if (listener is IDxOrderSnapshotListener) { (listener as IDxOrderSnapshotListener).OnOrderSnapshot <NativeEventBuffer <NativeOrder>, NativeOrder>(orderBuf); } break; case EventType.Candle: var candleBuf = NativeBufferFactory.CreateCandleBuf(snapshotData.symbol, snapshotData.records, snapshotData.records_count, null); if (listener is IDxCandleSnapshotListener) { (listener as IDxCandleSnapshotListener).OnCandleSnapshot <NativeEventBuffer <NativeCandle>, NativeCandle>(candleBuf); } break; case EventType.TimeAndSale: var timeAndSaleBuf = NativeBufferFactory.CreateTimeAndSaleBuf(snapshotData.symbol, snapshotData.records, snapshotData.records_count, null); if (listener is IDxTimeAndSaleSnapshotListener) { (listener as IDxTimeAndSaleSnapshotListener).OnTimeAndSaleSnapshot <NativeEventBuffer <NativeTimeAndSale>, NativeTimeAndSale>(timeAndSaleBuf); } break; case EventType.SpreadOrder: var spreadOrderBuf = NativeBufferFactory.CreateSpreadOrderBuf(snapshotData.symbol, snapshotData.records, snapshotData.records_count, null); if (listener is IDxSpreadOrderSnapshotListener) { (listener as IDxSpreadOrderSnapshotListener).OnSpreadOrderSnapshot <NativeEventBuffer <NativeSpreadOrder>, NativeSpreadOrder>(spreadOrderBuf); } break; case EventType.Greeks: var greeksBuf = NativeBufferFactory.CreateGreeksBuf(snapshotData.symbol, snapshotData.records, snapshotData.records_count, null); if (listener is IDxGreeksSnapshotListener) { (listener as IDxGreeksSnapshotListener).OnGreeksSnapshot <NativeEventBuffer <NativeGreeks>, NativeGreeks>(greeksBuf); } break; case EventType.Series: var seriesBuf = NativeBufferFactory.CreateSeriesBuf(snapshotData.symbol, snapshotData.records, snapshotData.records_count, null); if (listener is IDxSeriesSnapshotListener) { (listener as IDxSeriesSnapshotListener).OnSeriesSnapshot <NativeEventBuffer <NativeSeries>, NativeSeries>(seriesBuf); } break; } }
private void OnIncOrderSnapshot(IntPtr snapshotDataPtr, int newSnapshot, IntPtr userData) { var snapshotData = (DxSnapshotData)Marshal.PtrToStructure(snapshotDataPtr, typeof(DxSnapshotData)); if (snapshotData.event_type == EventType.Order) { var orderBuf = NativeBufferFactory.CreateOrderBuf(snapshotData.symbol, snapshotData.records, snapshotData.records_count, null); if (listener is IDxIncOrderSnapshotListener) { (listener as IDxIncOrderSnapshotListener).OnOrderSnapshot <NativeEventBuffer <NativeOrder>, NativeOrder>(orderBuf, newSnapshot != 0); } } }
private void OnEvent(EventType eventType, IntPtr symbol, IntPtr data, int dataCount, IntPtr eventParamsPtr, IntPtr userData) { object obj = Marshal.PtrToStructure(eventParamsPtr, typeof(DxEventParams)); DxEventParams event_params = (DxEventParams)obj; EventParams nativeEventParams = new EventParams(event_params.flags, event_params.time_int_field, event_params.snapshot_key); switch (eventType) { case EventType.Order: var orderBuf = NativeBufferFactory.CreateOrderBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxOrderListener)?.OnOrder <NativeEventBuffer <NativeOrder>, NativeOrder>(orderBuf); break; case EventType.Profile: var profileBuf = NativeBufferFactory.CreateProfileBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxProfileListener)?.OnProfile <NativeEventBuffer <NativeProfile>, NativeProfile>(profileBuf); break; case EventType.Quote: var quoteBuf = NativeBufferFactory.CreateQuoteBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxQuoteListener)?.OnQuote <NativeEventBuffer <NativeQuote>, NativeQuote>(quoteBuf); break; case EventType.TimeAndSale: var tsBuf = NativeBufferFactory.CreateTimeAndSaleBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxTimeAndSaleListener)?.OnTimeAndSale <NativeEventBuffer <NativeTimeAndSale>, NativeTimeAndSale>(tsBuf); break; case EventType.Trade: var tBuf = NativeBufferFactory.CreateTradeBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxTradeListener)?.OnTrade <NativeEventBuffer <NativeTrade>, NativeTrade>(tBuf); break; case EventType.Summary: var sBuf = NativeBufferFactory.CreateSummaryBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxFundamentalListener)?.OnFundamental <NativeEventBuffer <NativeSummary>, NativeSummary>(sBuf); break; case EventType.Candle: var cBuf = NativeBufferFactory.CreateCandleBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxCandleListener)?.OnCandle <NativeEventBuffer <NativeCandle>, NativeCandle>(cBuf); break; case EventType.TradeETH: var teBuf = NativeBufferFactory.CreateTradeETHBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxTradeETHListener)?.OnTradeETH <NativeEventBuffer <NativeTradeETH>, NativeTradeETH>(teBuf); break; case EventType.SpreadOrder: var spreadOrderBuf = NativeBufferFactory.CreateSpreadOrderBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxSpreadOrderListener)?.OnSpreadOrder <NativeEventBuffer <NativeSpreadOrder>, NativeSpreadOrder>(spreadOrderBuf); break; case EventType.Greeks: var greeksBuf = NativeBufferFactory.CreateGreeksBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxGreeksListener)?.OnGreeks <NativeEventBuffer <NativeGreeks>, NativeGreeks>(greeksBuf); break; case EventType.TheoPrice: var theoPriceBuf = NativeBufferFactory.CreateTheoPriceBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxTheoPriceListener)?.OnTheoPrice <NativeEventBuffer <NativeTheoPrice>, NativeTheoPrice>(theoPriceBuf); break; case EventType.Underlying: var underlyingBuf = NativeBufferFactory.CreateUnderlyingBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxUnderlyingListener)?.OnUnderlying <NativeEventBuffer <NativeUnderlying>, NativeUnderlying>(underlyingBuf); break; case EventType.Series: var seriesBuf = NativeBufferFactory.CreateSeriesBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxSeriesListener)?.OnSeries <NativeEventBuffer <NativeSeries>, NativeSeries>(seriesBuf); break; case EventType.Configuration: var configurationBuf = NativeBufferFactory.CreateConfigurationBuf(symbol, data, dataCount, nativeEventParams); (eventListener as IDxConfigurationListener)?.OnConfiguration <NativeEventBuffer <NativeConfiguration>, NativeConfiguration>(configurationBuf); break; } }
private void OnQuote(IntPtr symbol, IntPtr quote, int count, IntPtr userData) { var quoteBuf = NativeBufferFactory.CreateQuoteBuf(symbol, quote, count, null); quoteListener.OnQuote <NativeEventBuffer <NativeQuote>, NativeQuote>(quoteBuf); }