34 bool autoInitPartitions =
true);
46 virtual void submitCommand(std::unique_ptr<Command> command)
const;
66 std::optional<common::Instrument>
76 std::unique_ptr<Partition> partition);
87 std::unique_ptr<Partition>
Asynchronous database worker abstraction.
Represents a partition (shard) of the trading engine for a single symbol.
Executes database tasks asynchronously.
Definition DatabaseWorker.h:22
Represents a FIX Execution Report (35=8) message.
Definition ExecutionReport.h:14
Definition MarketDataPublisher.h:12
A thread-safe, database-aware generator for unique order IDs.
Definition OrderIDGenerator.h:15
Encapsulates all components needed to process commands for a symbol.
Definition Partition.h:32
High-level manager for partitions and command dispatch.
Definition TradingCore.h:27
void stopAcceptingCommands()
Definition TradingCore.cpp:65
ExecutionReportCallback mExecutionReportCallback
Definition TradingCore.h:89
std::unique_ptr< OrderIDGenerator > mOrderIDGenerator
Definition TradingCore.h:86
std::unique_ptr< Partition > mPartitions[static_cast< int >(common::Instrument::COUNT)]
Definition TradingCore.h:88
std::function< void(const fix::ExecutionReport &)> ExecutionReportCallback
Definition TradingCore.h:29
std::optional< common::Instrument > findPartitionForOrder(common::OrderID orderId) const
Definition TradingCore.cpp:200
Partition * getPartition(common::Instrument instrument) const
Definition TradingCore.cpp:147
void waitAllQueuesIdle() const
Definition TradingCore.cpp:72
std::optional< common::Order > getOrderByClientOrderId(const std::string &clientOrderId) const
Definition TradingCore.cpp:226
void subscribeToMarketData(common::Symbol symbol, common::SessionID sessionId)
Definition TradingCore.cpp:162
void unsubscribeFromMarketData(common::Symbol symbol, common::SessionID sessionId)
Definition TradingCore.cpp:172
std::optional< common::Order > getOrder(common::OrderID orderId) const
Definition TradingCore.cpp:211
TradingCore()
Definition TradingCore.cpp:17
MarketDataPublisher & getMarketDataPublisher()
Definition TradingCore.cpp:189
void subscribeToExecutions(ExecutionReportCallback callback)
Definition TradingCore.cpp:157
virtual void submitCommand(std::unique_ptr< Command > command) const
Definition TradingCore.cpp:88
std::unique_ptr< TradeIDGenerator > mTradeIDGenerator
Definition TradingCore.h:85
void stop()
Definition TradingCore.cpp:58
void start()
Definition TradingCore.cpp:48
void setPartition(common::Instrument instrument, std::unique_ptr< Partition > partition)
Definition TradingCore.cpp:240
data::DatabaseWorker * mDatabaseWorker
Definition TradingCore.h:83
static TradingCore & getInstance()
Definition TradingCore.cpp:194
const ExecutionReportCallback & getExecutionReportCallback() const
Definition TradingCore.cpp:184
virtual ~TradingCore()
Definition TradingCore.cpp:42
std::unique_ptr< data::DatabaseWorker > mOwnedDatabaseWorker
Definition TradingCore.h:84
OrderIDGenerator * getOrderIDGenerator()
Definition TradingCore.cpp:152
void initPartitions()
Definition TradingCore.cpp:137
MarketDataPublisher mMarketDataPublisher
Definition TradingCore.h:90
Instrument
Represents the financial instruments available for trading.
Definition Instrument.h:17
@ COUNT
Helper to get the number of instruments.
uint64_t OrderID
A type alias for unique order identifiers.
Definition Types.h:134
uint64_t SessionID
A type alias for session identifiers.
Definition Types.h:142
Definition CancelOrder.h:10