BetaTrader
A HFT Eco-System
Loading...
Searching...
No Matches
trading_core::MarketDataPublisher Class Reference

Manages market data subscriptions and broadcasts updates. More...

#include <MarketDataPublisher.h>

Collaboration diagram for trading_core::MarketDataPublisher:
Collaboration graph

Public Types

using IncrementalCallback = std::function< void(const fix::MarketDataIncrementalRefresh &)>
 
using SnapshotCallback = std::function< void(const fix::MarketDataSnapshotFullRefresh &)>
 

Public Member Functions

void addGeneralIncrementalSubscriber (IncrementalCallback callback)
 
void addGeneralSnapshotSubscriber (SnapshotCallback callback)
 
void addSubscription (common::Symbol symbol, common::SessionID sessionId)
 
virtual void publishIncremental (const fix::MarketDataIncrementalRefresh &refresh)
 
virtual void publishSnapshot (const fix::MarketDataSnapshotFullRefresh &snapshot)
 
void removeSubscription (common::SessionID sessionId)
 
void removeSubscription (common::Symbol symbol, common::SessionID sessionId)
 
void subscribeToIncrementals (IncrementalCallback callback)
 
void subscribeToSnapshots (SnapshotCallback callback)
 

Private Attributes

std::vector< IncrementalCallbackmGeneralIncrementalCallbacks
 
std::vector< SnapshotCallbackmGeneralSnapshotCallbacks
 
std::shared_mutex mMutex
 
std::vector< IncrementalCallbackmSessionIncrementalCallbacks
 
std::vector< SnapshotCallbackmSessionSnapshotCallbacks
 
std::map< common::Symbol, std::vector< common::SessionID > > mSubscriptions
 

Detailed Description

Manages market data subscriptions and broadcasts updates.

This class handles internal subscriptions and routes snapshots and incremental updates to various interested parties (FIX sessions, UI, etc.).

Member Typedef Documentation

◆ IncrementalCallback

◆ SnapshotCallback

Member Function Documentation

◆ addGeneralIncrementalSubscriber()

void trading_core::MarketDataPublisher::addGeneralIncrementalSubscriber ( IncrementalCallback  callback)
Here is the caller graph for this function:

◆ addGeneralSnapshotSubscriber()

void trading_core::MarketDataPublisher::addGeneralSnapshotSubscriber ( SnapshotCallback  callback)

◆ addSubscription()

void trading_core::MarketDataPublisher::addSubscription ( common::Symbol  symbol,
common::SessionID  sessionId 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ publishIncremental()

void trading_core::MarketDataPublisher::publishIncremental ( const fix::MarketDataIncrementalRefresh refresh)
virtual
Here is the caller graph for this function:

◆ publishSnapshot()

void trading_core::MarketDataPublisher::publishSnapshot ( const fix::MarketDataSnapshotFullRefresh snapshot)
virtual
Here is the caller graph for this function:

◆ removeSubscription() [1/2]

void trading_core::MarketDataPublisher::removeSubscription ( common::SessionID  sessionId)

◆ removeSubscription() [2/2]

void trading_core::MarketDataPublisher::removeSubscription ( common::Symbol  symbol,
common::SessionID  sessionId 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ subscribeToIncrementals()

void trading_core::MarketDataPublisher::subscribeToIncrementals ( IncrementalCallback  callback)
Here is the caller graph for this function:

◆ subscribeToSnapshots()

void trading_core::MarketDataPublisher::subscribeToSnapshots ( SnapshotCallback  callback)
Here is the caller graph for this function:

Member Data Documentation

◆ mGeneralIncrementalCallbacks

std::vector<IncrementalCallback> trading_core::MarketDataPublisher::mGeneralIncrementalCallbacks
private

◆ mGeneralSnapshotCallbacks

std::vector<SnapshotCallback> trading_core::MarketDataPublisher::mGeneralSnapshotCallbacks
private

◆ mMutex

std::shared_mutex trading_core::MarketDataPublisher::mMutex
mutableprivate

◆ mSessionIncrementalCallbacks

std::vector<IncrementalCallback> trading_core::MarketDataPublisher::mSessionIncrementalCallbacks
private

◆ mSessionSnapshotCallbacks

std::vector<SnapshotCallback> trading_core::MarketDataPublisher::mSessionSnapshotCallbacks
private

◆ mSubscriptions

std::map<common::Symbol, std::vector<common::SessionID> > trading_core::MarketDataPublisher::mSubscriptions
private

The documentation for this class was generated from the following files: