MultiExecutionListener
MultiExecutionListener
fans out order lifecycle events to multiple IOrderExecutionListener
targets. It acts as a multicast adapter for OrderExecutionBus
subscribers.
class MultiExecutionListener : public IOrderExecutionListener {
public:
explicit MultiExecutionListener(SubscriberId id);
void addListener(IOrderExecutionListener* listener);
// All event methods delegate to added listeners
};
Purpose
- Aggregate multiple execution listeners into a single subscriber to avoid duplicating subscriptions to the
OrderExecutionBus
.
Responsibilities
Method | Behavior |
---|---|
addListener() |
Registers a new listener (if not already added). |
Event handlers | Forwards all events to each registered listener. |
Notes
- Listeners are stored as raw pointers; ownership is not transferred.
- Prevents duplicate listeners using
std::ranges::find()
. - Efficient for use cases like simultaneously tracking PnL, latency, and order audit logs.