BetaTrader
A HFT Eco-System
Loading...
Searching...
No Matches
FixServer.h
Go to the documentation of this file.
1#pragma once
2
7#include "fix/FixSession.h"
10#include <asio.hpp>
11#include <map>
12#include <memory>
13#include <string>
14
15namespace fix {
16
17 class FixServer {
18 public:
19 FixServer(asio::io_context& ioContext, short port,
20 trading_core::TradingCore& tradingCore,
21 ::data::SequenceRepository* seqRepo = nullptr);
22
23 void run();
24 void stop();
25
26 void onExecutionReport(const ExecutionReport& report);
27
29 const MarketDataSnapshotFullRefresh& snapshot);
30
32 const MarketDataIncrementalRefresh& refresh);
33
34 void registerSession(const std::shared_ptr<FixSession>& session);
35
36 void unregisterSession(uint32_t sessionId);
37
39
40 const std::map<uint32_t, std::shared_ptr<FixSession>>& getSessions() const { return mSessions; }
41
43
44
45 private:
46 void doAccept();
47
48 asio::io_context& mIoContext;
49 asio::ip::tcp::acceptor mAcceptor;
50 asio::ip::tcp::socket mSocket;
53 std::map<uint32_t, std::shared_ptr<FixSession>> mSessions;
54 uint32_t mNextSessionId = 1;
55 std::map<std::string, std::vector<std::weak_ptr<FixSession>>>
57 };
58
59} // namespace fix
Top-level entry point for the trading core service.
Repository for managing sequence numbers.
Definition SequenceRepository.h:23
Represents a FIX Execution Report (35=8) message.
Definition ExecutionReport.h:14
Definition FixServer.h:17
uint32_t mNextSessionId
Definition FixServer.h:54
void registerSession(const std::shared_ptr< FixSession > &session)
Definition FixServer.cpp:115
asio::io_context & mIoContext
Definition FixServer.h:48
void onExecutionReport(const ExecutionReport &report)
Definition FixServer.cpp:62
void unregisterSession(uint32_t sessionId)
Definition FixServer.cpp:121
void onMarketDataSnapshotFullRefresh(const MarketDataSnapshotFullRefresh &snapshot)
Definition FixServer.cpp:74
void onMarketDataIncrementalRefresh(const MarketDataIncrementalRefresh &refresh)
Definition FixServer.cpp:86
asio::ip::tcp::socket mSocket
Definition FixServer.h:50
void run()
Definition FixServer.cpp:42
trading_core::TradingCore & getTradingCore()
Definition FixServer.h:42
std::map< std::string, std::vector< std::weak_ptr< FixSession > > > mMarketDataSubscriptions
Definition FixServer.h:56
FixSessionManager mSessionManager
Definition FixServer.h:52
std::map< uint32_t, std::shared_ptr< FixSession > > mSessions
Definition FixServer.h:53
const std::map< uint32_t, std::shared_ptr< FixSession > > & getSessions() const
Definition FixServer.h:40
void stop()
Definition FixServer.cpp:47
void doAccept()
Definition FixServer.cpp:98
trading_core::TradingCore & mTradingCore
Definition FixServer.h:51
asio::ip::tcp::acceptor mAcceptor
Definition FixServer.h:49
FixSessionManager & getManager()
Definition FixServer.h:38
Definition FixSessionManager.h:13
High-level manager for partitions and command dispatch.
Definition TradingCore.h:30
Definition BusinessMessageReject.h:12
Definition MarketDataIncrementalRefresh.h:22
Definition MarketDataSnapshotFullRefresh.h:21