行情适配器抽象接口
More...
#include <md_adapter.hpp>
行情适配器抽象接口
所有行情数据源都应实现此接口。适配器的职责:
- 管理与数据源的连接
- 处理登录/登出
- 订阅/退订合约
- 将收到的行情转换为 MarketData 格式
- 将 MarketData 写入无锁队列供下游消费
- 线程模型
- 适配器内部可能有自己的回调线程(如 CTP)
- 所有行情数据通过无锁队列传递,避免阻塞回调线程
- start()/stop() 应由主线程调用
- 使用示例
auto adapter = std::make_unique<MockMdAdapter>(mdQueue);
adapter->setStateCallback([](
MdAdapterState state,
const std::string& msg) {
LOG() <<
"State: " <<
static_cast<int>(state) <<
" - " << msg;
});
adapter->start();
adapter->subscribe({"IF2401", "IC2401"});
MarketData md;
while (mdQueue.wait_dequeue_timed(md, std::chrono::milliseconds(100))) {
process(md);
}
adapter->stop();
Definition concurrentqueue.h:768
#define LOG()
日志输出宏
Definition logger.hpp:138
MdAdapterState
行情适配器状态
Definition md_adapter.hpp:24
◆ ~MdAdapter()
| virtual fix40::MdAdapter::~MdAdapter |
( |
| ) |
|
|
virtualdefault |
◆ MdAdapter()
◆ getName()
| virtual std::string fix40::MdAdapter::getName |
( |
| ) |
const |
|
pure virtual |
◆ getState()
◆ getTradingDay()
| virtual std::string fix40::MdAdapter::getTradingDay |
( |
| ) |
const |
|
pure virtual |
◆ isRunning()
| virtual bool fix40::MdAdapter::isRunning |
( |
| ) |
const |
|
pure virtual |
◆ pushMarketData() [1/2]
| void fix40::MdAdapter::pushMarketData |
( |
const MarketData & |
data | ) |
|
|
inlineprotected |
将行情数据写入队列
- Parameters
-
子类在收到行情后调用此方法将数据写入队列。
◆ pushMarketData() [2/2]
| void fix40::MdAdapter::pushMarketData |
( |
MarketData && |
data | ) |
|
|
inlineprotected |
将行情数据写入队列(移动语义)
- Parameters
-
◆ setStateCallback()
| virtual void fix40::MdAdapter::setStateCallback |
( |
StateCallback |
callback | ) |
|
|
pure virtual |
◆ start()
| virtual bool fix40::MdAdapter::start |
( |
| ) |
|
|
pure virtual |
启动适配器
- Returns
- true 启动成功
-
false 启动失败
启动后适配器会尝试连接数据源并登录。 状态变化通过 StateCallback 通知。
Implemented in fix40::MockMdAdapter.
◆ stop()
| virtual void fix40::MdAdapter::stop |
( |
| ) |
|
|
pure virtual |
◆ subscribe()
| virtual bool fix40::MdAdapter::subscribe |
( |
const std::vector< std::string > & |
instruments | ) |
|
|
pure virtual |
订阅合约行情
- Parameters
-
- Returns
- true 订阅请求已发送
-
false 订阅失败(如未连接)
- Note
- 订阅结果通过 StateCallback 异步通知
Implemented in fix40::MockMdAdapter.
◆ unsubscribe()
| virtual bool fix40::MdAdapter::unsubscribe |
( |
const std::vector< std::string > & |
instruments | ) |
|
|
pure virtual |
◆ marketDataQueue_
The documentation for this class was generated from the following file: