ConnectorManager¶
ConnectorManager coordinates lifecycle and callback wiring for multiple ExchangeConnector instances, managing startup and routing of market data events.
class ConnectorManager {
public:
void registerConnector(std::shared_ptr<ExchangeConnector> connector);
void startAll(ExchangeConnector::BookUpdateCallback onBookUpdate,
ExchangeConnector::TradeCallback onTrade);
private:
std::map<std::string, std::shared_ptr<ExchangeConnector>> connectors;
};
Purpose¶
- Aggregate multiple exchange connectors and manage their startup and event forwarding.
Responsibilities¶
| Aspect | Details |
|---|---|
| Registration | Stores connectors indexed by their exchangeId() value. |
| Startup | Calls start() on all registered connectors. |
| Callbacks | Wires trade and book update callbacks to each connector during startup. |
| Output | Logs startup of each connector to stdout. |
Notes¶
- Assumes connectors are ready to start at the time of
startAll()— no deferred registration. - Wraps callbacks using lambdas to allow mutation and move-only semantics.
- Primarily intended for system bootstrap and orchestration; not used in performance-critical paths.
- Callback dispatch remains connector-local; manager only wires them once.