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

Encapsulates all components needed to process commands for a symbol. More...

#include <Partition.h>

Collaboration diagram for trading_core::Partition:
Collaboration graph

Public Member Functions

 Partition (common::Instrument symbol, data::DatabaseWorker *databaseWorker, TradeIDGenerator *tradeIDGenerator, MarketDataPublisher &publisher)
 
 Partition (common::Instrument symbol, data::DatabaseWorker *databaseWorker, TradeIDGenerator *tradeIDGenerator, MarketDataPublisher &publisher, std::unique_ptr< data::TradeRepository > tradeRepository, std::unique_ptr< data::OrderRepository > orderRepository, std::unique_ptr< OrderManager > orderManager, std::unique_ptr< OrderBook > orderBook, std::unique_ptr< Matcher > matcher, std::unique_ptr< RiskManager > riskManager)
 
 ~Partition ()
 
void enqueue (std::unique_ptr< Command > command)
 
const data::DatabaseWorkergetDatabaseWorker () const
 
const MatchergetMatcher () const
 
const OrderBookgetOrderBook () const
 
const OrderManagergetOrderManager () const
 
const data::OrderRepositorygetOrderRepository () const
 
size_t getQueueSize () const
 
const RiskManagergetRiskManager () const
 
common::Symbol getSymbol () const
 
const TradeIDGeneratorgetTradeIDGenerator () const
 
const WorkerThreadgetWorker () const
 
void start ()
 
void stop ()
 
void stopAcceptingCommands ()
 
void waitReady ()
 

Private Member Functions

void init ()
 

Private Attributes

std::atomic< bool > mAcceptingCommands {true}
 
rigtorp::SPSCQueue< std::unique_ptr< Command > > mCommandQueue
 
data::DatabaseWorkermDatabaseWorker
 
std::unique_ptr< MatchermMatcher
 
std::unique_ptr< OrderBookmOrderBook
 
std::unique_ptr< OrderManagermOrderManager
 
std::unique_ptr< data::OrderRepositorymOrderRepository
 
MarketDataPublishermPublisher
 
std::future< void > mReadyFuture
 
std::unique_ptr< RiskManagermRiskManager
 
common::Symbol mSymbol
 
TradeIDGeneratormTradeIDGenerator
 
std::unique_ptr< data::TradeRepositorymTradeRepository
 
std::unique_ptr< WorkerThreadmWorker
 

Detailed Description

Encapsulates all components needed to process commands for a symbol.

Constructor & Destructor Documentation

◆ Partition() [1/2]

trading_core::Partition::Partition ( common::Instrument  symbol,
data::DatabaseWorker databaseWorker,
TradeIDGenerator tradeIDGenerator,
MarketDataPublisher publisher 
)
Here is the call graph for this function:

◆ Partition() [2/2]

trading_core::Partition::Partition ( common::Instrument  symbol,
data::DatabaseWorker databaseWorker,
TradeIDGenerator tradeIDGenerator,
MarketDataPublisher publisher,
std::unique_ptr< data::TradeRepository tradeRepository,
std::unique_ptr< data::OrderRepository orderRepository,
std::unique_ptr< OrderManager orderManager,
std::unique_ptr< OrderBook orderBook,
std::unique_ptr< Matcher matcher,
std::unique_ptr< RiskManager riskManager 
)
Here is the call graph for this function:

◆ ~Partition()

trading_core::Partition::~Partition ( )
Here is the call graph for this function:

Member Function Documentation

◆ enqueue()

void trading_core::Partition::enqueue ( std::unique_ptr< Command command)
Here is the call graph for this function:

◆ getDatabaseWorker()

const data::DatabaseWorker * trading_core::Partition::getDatabaseWorker ( ) const

◆ getMatcher()

const Matcher * trading_core::Partition::getMatcher ( ) const

◆ getOrderBook()

const OrderBook * trading_core::Partition::getOrderBook ( ) const

◆ getOrderManager()

const OrderManager * trading_core::Partition::getOrderManager ( ) const

◆ getOrderRepository()

const data::OrderRepository * trading_core::Partition::getOrderRepository ( ) const

◆ getQueueSize()

size_t trading_core::Partition::getQueueSize ( ) const

◆ getRiskManager()

const RiskManager * trading_core::Partition::getRiskManager ( ) const

◆ getSymbol()

common::Symbol trading_core::Partition::getSymbol ( ) const

◆ getTradeIDGenerator()

const TradeIDGenerator * trading_core::Partition::getTradeIDGenerator ( ) const

◆ getWorker()

const WorkerThread * trading_core::Partition::getWorker ( ) const

◆ init()

void trading_core::Partition::init ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ start()

void trading_core::Partition::start ( )
Here is the call graph for this function:

◆ stop()

void trading_core::Partition::stop ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ stopAcceptingCommands()

void trading_core::Partition::stopAcceptingCommands ( )

◆ waitReady()

void trading_core::Partition::waitReady ( )

Member Data Documentation

◆ mAcceptingCommands

std::atomic<bool> trading_core::Partition::mAcceptingCommands {true}
private

◆ mCommandQueue

rigtorp::SPSCQueue<std::unique_ptr<Command> > trading_core::Partition::mCommandQueue
private

◆ mDatabaseWorker

data::DatabaseWorker* trading_core::Partition::mDatabaseWorker
private

◆ mMatcher

std::unique_ptr<Matcher> trading_core::Partition::mMatcher
private

◆ mOrderBook

std::unique_ptr<OrderBook> trading_core::Partition::mOrderBook
private

◆ mOrderManager

std::unique_ptr<OrderManager> trading_core::Partition::mOrderManager
private

◆ mOrderRepository

std::unique_ptr<data::OrderRepository> trading_core::Partition::mOrderRepository
private

◆ mPublisher

MarketDataPublisher& trading_core::Partition::mPublisher
private

◆ mReadyFuture

std::future<void> trading_core::Partition::mReadyFuture
private

◆ mRiskManager

std::unique_ptr<RiskManager> trading_core::Partition::mRiskManager
private

◆ mSymbol

common::Symbol trading_core::Partition::mSymbol
private

◆ mTradeIDGenerator

TradeIDGenerator* trading_core::Partition::mTradeIDGenerator
private

◆ mTradeRepository

std::unique_ptr<data::TradeRepository> trading_core::Partition::mTradeRepository
private

◆ mWorker

std::unique_ptr<WorkerThread> trading_core::Partition::mWorker
private

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