BetaTrader
A HFT Eco-System
Loading...
Searching...
No Matches
ExecutionPublisher.h
Go to the documentation of this file.
1//
2// Created by sujal on 29-10-2025.
3//
4#pragma once
5
6#include "common/Order.h"
7#include "common/Trade.h"
8#include "common_fix/ExecutionReport.h" // Include the report type
9#include <functional>
10#include <string>
11#include <mutex>
12
13namespace trading_core {
24 public:
25 using ExecutionReportCallback = std::function<void(const fix::ExecutionReport&)>;
26
27 static void SetCallback(ExecutionReportCallback callback);
28
29 static void publishExecution(const common::Order& order,
30 const std::string& action);
31
32 static void publishTrade(const common::Trade& trade,
33 const common::Order& buyOrder,
34 const common::Order& sellOrder);
35
36 static void publishRejection(const common::OrderID& orderId,
37 const common::ClientID& clientId,
38 const common::Symbol& symbol,
39 const common::OrderSide& side,
40 const std::string_view& reason);
41 private:
43 static std::mutex s_mutex;
44 };
45} // namespace trading_core
Represents a single trading order in the system.
Definition Order.h:19
Represents a single trade execution in the system.
Definition Trade.h:19
Represents a FIX Execution Report (35=8) message.
Definition ExecutionReport.h:14
A utility class for publishing execution reports, trades, and rejections.
Definition ExecutionPublisher.h:23
std::function< void(const fix::ExecutionReport &)> ExecutionReportCallback
Definition ExecutionPublisher.h:25
static std::mutex s_mutex
Definition ExecutionPublisher.h:43
static void publishTrade(const common::Trade &trade, const common::Order &buyOrder, const common::Order &sellOrder)
Definition ExecutionPublisher.cpp:71
static void publishExecution(const common::Order &order, const std::string &action)
Definition ExecutionPublisher.cpp:31
static void publishRejection(const common::OrderID &orderId, const common::ClientID &clientId, const common::Symbol &symbol, const common::OrderSide &side, const std::string_view &reason)
Definition ExecutionPublisher.cpp:126
static void SetCallback(ExecutionReportCallback callback)
Definition ExecutionPublisher.cpp:14
static ExecutionReportCallback s_callback
Definition ExecutionPublisher.h:42
Instrument
Represents the financial instruments available for trading.
Definition Instrument.h:17
uint64_t OrderID
A type alias for unique order identifiers.
Definition Types.h:134
std::string ClientID
A type alias for client identifiers.
Definition Types.h:140
OrderSide
Represents the side of an order (Buy or Sell).
Definition Types.h:17
Definition CommandType.h:7