forwardOptional Fields   Table of ContentLow Latency Best Practicesforward
Threading Model

An important consideration for users of the OnixS .NET ICE iMpact Multicast Price Feed Handler library is the threading model that is used by the components of the application. The threading model of a library determines how the methods of the listeners are assigned to threads in order to be executed and synchronized.

Overview

After calling the Start(ICollection<MarketSubscription>) method for each MarketSubscription object three threads will be created: one - for a snapshot feed, one - for a live feed and one - a control thread. In the current implementation for each feed pair (a snapshot and a live) there is one control thread that is called "order book change/update" and "message received" events.

Handler.FuturesProductDefinitionReceived

The Handler may raise the FuturesProductDefinitionReceived event event only from a single thread.

Handler.OptionsProductDefinitionReceived

The Handler may raise the OptionsProductDefinitionReceived event event only from a single thread.

Handler.OptionsStrategyDefinitionReceived

The Handler may raise the OptionsStrategyDefinitionReceived event event only from a single thread.

Handler.AddModifyOrderReceived

The Handler may raise the AddModifyOrderReceived event simultaneously from different threads.

Handler.AddPriceLevelReceived

The Handler may raise the AddPriceLevelReceived event simultaneously from different threads.

Handler.BundleMarkerReceived

The Handler may raise the BundleMarkerReceived event simultaneously from different threads.

Handler.CancelledTradeReceived

The Handler may raise the CancelledTradeReceived event simultaneously from different threads.

Handler.ChangePriceLevelReceived

The Handler may raise the ChangePriceLevelReceived event simultaneously from different threads.

Handler.DeleteOrderReceived

The Handler may raise the DeleteOrderReceived event simultaneously from different threads.

Handler.DeletePriceLevelReceived

The Handler may raise the DeletePriceLevelReceived event simultaneously from different threads.

Handler.EndOfDayMarketSummaryReceived

The Handler may raise the EndOfDayMarketSummaryReceived event simultaneously from different threads.

Handler.IntervalPriceLimitNotificationReceived

The Handler may raise the IntervalPriceLimitNotificationReceived event simultaneously from different threads.

Handler.InvestigatedTradeReceived

The Handler may raise the InvestigatedTradeReceived event simultaneously from different threads.

Handler.MarkerIndexPricesReceived

The Handler may raise the MarkerIndexPricesReceived event simultaneously from different threads.

Handler.MarketEventReceived

The Handler may raise the MarketEventReceived event simultaneously from different threads.

Handler.MarketSnapshotReceived

The Handler may raise the MarketSnapshotReceived event simultaneously from different threads.

Handler.MarketSnapshotOrderReceived

The Handler may raise the MarketSnapshotOrderReceived event simultaneously from different threads.

Handler.MarketSnapshotPriceLevelReceived

The Handler may raise the MarketSnapshotPriceLevelReceived event simultaneously from different threads.

Handler.MarketStateChangeReceived

The Handler may raise the MarketStateChangeReceived event simultaneously from different threads.

Handler.MarketStatisticsReceived

The Handler may raise the MarketStatisticsReceived event simultaneously from different threads.

Handler.NewOptionsMarketDefinitionReceived

The Handler may raise the NewOptionsMarketDefinitionReceived event simultaneously from different threads.

Handler.NewOptionsStrategyDefinitionReceived

The Handler may raise the NewOptionsStrategyDefinitionReceived event simultaneously from different threads.

Handler.OldStyleOptionsTradeAndMarketStatsReceived

The Handler may raise the OldStyleOptionsTradeAndMarketStatsReceived event simultaneously from different threads.

Handler.OpenInterestReceived

The Handler may raise the OpenInterestReceived event simultaneously from different threads.

Handler.OpenPriceReceived

The Handler may raise the OpenPriceReceived event simultaneously from different threads.

Handler.OptionOpenInterestReceived

The Handler may raise the OptionOpenInterestReceived event simultaneously from different threads.

Handler.OptionSettlementPriceReceived

The Handler may raise the OptionSettlementPriceReceived event simultaneously from different threads.

Handler.PreOpenPriceIndicatorReceived

The Handler may raise the PreOpenPriceIndicatorReceived event simultaneously from different threads.

Handler.RfqReceived

The Handler may raise the RfqReceived event simultaneously from different threads.

Handler.SettlementPriceReceived

The Handler may raise the SettlementPriceReceived event simultaneously from different threads.

Handler.StripInfoReceived

The Handler may raise the StripInfoReceived event event only from a single thread.

Handler.SystemTextReceived

The Handler may raise the SystemTextReceived event simultaneously from different threads.

Handler.TradeReceived

The Handler may raise the TradeReceived event simultaneously from different threads.

Handler.MulticastMessageBlockBegin

The Handler may raise the MulticastMessageBlockBegin event simultaneously from different threads.

Handler.MulticastMessageBlockEnd

The Handler may raise the MulticastMessageBlockEnd event simultaneously from different threads.

Handler.HandlerStateChanged

The Handler may raise the HandlerStateChanged event event only from a single thread.

Handler.BookChanged

The Handler may raise the BookChanged event simultaneously from different threads.

Handler.ErrorOccurred

The Handler may raise the ErrorOccurred event simultaneously from different threads.

Handler.LogReplayFinished

The Handler may raise the LogReplayFinished event event only from a single thread.

See Also

Other Resources