11#ifndef PUSH_CLIENT_IMPL_H
22#define PUSH_CLIENT_IMPL_H
33
4+ #include " ../model.h"
45#include " boost/asio/io_service.hpp"
56#include " ../include/tigerapi/push_client.h"
67#include " ../include/tigerapi/client_config.h"
78#include " ../include/openapi_pb/pb_source/Request.pb.h"
89#include " ../include/openapi_pb/pb_source/Response.pb.h"
910#include " ../include/openapi_pb/pb_source/SocketCommon.pb.h"
11+ #include " ../include/openapi_pb/pb_source/QuoteData.pb.h"
12+ #include " ../include/openapi_pb/pb_source/QuoteBasicData.pb.h"
13+ #include " ../include/openapi_pb/pb_source/QuoteBBOData.pb.h"
14+ #include " ../include/openapi_pb/pb_source/QuoteDepthData.pb.h"
15+ #include " ../include/openapi_pb/pb_source/AssetData.pb.h"
16+ #include " ../include/openapi_pb/pb_source/PositionData.pb.h"
17+ #include " ../include/openapi_pb/pb_source/OrderStatusData.pb.h"
18+ #include " ../include/openapi_pb/pb_source/StockTopData.pb.h"
19+ #include " ../include/openapi_pb/pb_source/OptionTopData.pb.h"
20+ #include " ../include/openapi_pb/pb_source/KlineData.pb.h"
21+ #include " ../include/openapi_pb/pb_source/TradeTickData.pb.h"
22+ #include " ../include/tigerapi/enums.h"
1023
1124namespace TIGER_API
1225{
@@ -20,6 +33,7 @@ namespace TIGER_API
2033 PushClientImpl& operator =(const PushClientImpl&) = delete ;
2134 private:
2235 PushClientImpl (const TIGER_API::ClientConfig& client_config);
36+ ClientConfig client_config_;
2337
2438 public:
2539 virtual void connect () override ;
@@ -45,16 +59,19 @@ namespace TIGER_API
4559 virtual bool subscribe_order (const std::string& account) override ;
4660 virtual bool unsubscribe_order (const std::string& account) override ;
4761
62+ virtual void set_transaction_changed_callback (const std::function<void (const tigeropen::push::pb::OrderTransactionData&)>& cb) override ;
63+ virtual bool subscribe_transaction (const std::string& account) override ;
64+ virtual bool unsubscribe_transaction (const std::string& account) override ;
4865
49- virtual void set_query_subscribed_symbols_changed_callback (const std::function<void (const std::vector<std::string>& symbols )>& cb) override ;
66+ virtual void set_query_subscribed_symbols_changed_callback (const std::function<void (const tigeropen::push::pb::Response& query_subscribed_symbols_response )>& cb) override ;
5067 virtual void query_subscribed_symbols () override ;
51- virtual void set_quote_changed_callback (const std::function<void (const tigeropen::push::pb::QuoteData &)>& cb) override ;
68+ virtual void set_quote_changed_callback (const std::function<void (const tigeropen::push::pb::QuoteBasicData &)>& cb) override ;
5269 virtual bool subscribe_quote (const std::vector<std::string>& symbols) override ;
5370 virtual bool subscribe_future_quote (const std::vector<std::string>& symbols) override ;
5471 virtual bool subscribe_option_quote (const std::vector<std::string>& symbols) override ;
5572 virtual bool unsubscribe_quote (const std::vector<std::string>& symbols) override ;
5673
57- virtual void set_quote_bbo_changed_callback (const std::function<void (const tigeropen::push::pb::QuoteData &)>& cb) override ;
74+ virtual void set_quote_bbo_changed_callback (const std::function<void (const tigeropen::push::pb::QuoteBBOData &)>& cb) override ;
5875 virtual bool subscribe_quote_bbo (const std::vector<std::string>& symbols) override ;
5976 virtual bool unsubscribe_quote_bbo (const std::vector<std::string>& symbols) override ;
6077
@@ -70,12 +87,12 @@ namespace TIGER_API
7087 virtual bool subscribe_full_tick (const std::vector<std::string>& symbols) override ;
7188 virtual bool unsubscribe_full_tick (const std::vector<std::string>& symbols) override ;
7289
73- virtual void set_tick_changed_callback (const std::function<void (const tigeropen::push::pb::TickData &)>& cb) override ;
90+ virtual void set_tick_changed_callback (const std::function<void (const TradeTick &)>& cb) override ;
7491 virtual bool subscribe_tick (const std::vector<std::string>& symbols) override ;
7592 virtual bool unsubscribe_tick (const std::vector<std::string>& symbols) override ;
7693
77- virtual void subscribe_market (const std::string& market) override ;
78- virtual void unsubscribe_market (const std::string& market) override ;
94+ virtual bool subscribe_market (const std::string& market) override ;
95+ virtual bool unsubscribe_market (const std::string& market) override ;
7996
8097 virtual void set_stock_top_changed_callback (const std::function<void (const tigeropen::push::pb::StockTopData&)>& cb) override ;
8198 virtual bool subscribe_stock_top (const std::string& market) override ;
@@ -92,20 +109,25 @@ namespace TIGER_API
92109 void on_message (const std::shared_ptr<tigeropen::push::pb::Response>& response_pb_object);
93110 bool send_trade_request (tigeropen::push::pb::SocketCommon_Command command, tigeropen::push::pb::SocketCommon_DataType datatype, const std::string& account);
94111 bool send_quote_request (tigeropen::push::pb::SocketCommon_Command command, tigeropen::push::pb::SocketCommon_DataType datatype, std::vector<std::string> symbols, const std::string& market);
112+ bool send_quote_request (tigeropen::push::pb::SocketCommon_Command command, tigeropen::push::pb::SocketCommon_DataType datatype, std::vector<std::string> symbols);
113+ std::shared_ptr<tigeropen::push::pb::QuoteBasicData> convert_to_basic_data (const tigeropen::push::pb::QuoteData& quote_data);
114+ std::shared_ptr<tigeropen::push::pb::QuoteBBOData> convert_to_bbo_data (const tigeropen::push::pb::QuoteData& quote_data);
115+ std::shared_ptr<TIGER_API::TradeTick> convert_tick (const tigeropen::push::pb::TradeTickData &data);
95116 private:
96117 std::function<void (const tigeropen::push::pb::Response& subscribe_response)> subscribe_callback_;
97118 std::function<void (const tigeropen::push::pb::Response& unsubscribe_response)> unsubscribe_callback_;
98119 std::function<void (const tigeropen::push::pb::Response& error_response)> error_callback_;
99120 std::function<void (const tigeropen::push::pb::AssetData& asset_data)> asset_changed_;
100121 std::function<void (const tigeropen::push::pb::PositionData& position_data)> position_changed_;
101122 std::function<void (const tigeropen::push::pb::OrderStatusData& order_status_data)> order_changed_;
102- std::function<void (const std::vector<std::string>& symbols)> query_subscribed_symbols_changed_;
103- std::function<void (const tigeropen::push::pb::QuoteData& quote_data)> quote_changed_;
104- std::function<void (const tigeropen::push::pb::QuoteData& quote_bbo_data)> quote_bbo_changed_;
123+ std::function<void (const tigeropen::push::pb::OrderTransactionData& transaction_data)> transaction_changed_;
124+ std::function<void (const tigeropen::push::pb::Response& query_subscribed_symbols_response)> query_subscribed_symbols_changed_;
125+ std::function<void (const tigeropen::push::pb::QuoteBasicData& quote_data)> quote_changed_;
126+ std::function<void (const tigeropen::push::pb::QuoteBBOData& quote_bbo_data)> quote_bbo_changed_;
105127 std::function<void (const tigeropen::push::pb::QuoteDepthData& quote_depth_data)> quote_depth_changed_;
106128 std::function<void (const tigeropen::push::pb::KlineData& kline_data)> kline_changed_;
107129 std::function<void (const tigeropen::push::pb::TickData& full_tick_data)> full_tick_changed_;
108- std::function<void (const tigeropen::push::pb::TickData & tick_data)> tick_changed_;
130+ std::function<void (const TradeTick & tick_data)> tick_changed_;
109131 std::function<void (const tigeropen::push::pb::StockTopData& stock_top_data)> stock_top_changed_;
110132 std::function<void (const tigeropen::push::pb::OptionTopData& option_top_data)> option_top_changed_;
111133
0 commit comments