#pragma once #include "trading.grpc.pb.h" #include #include #include #include class Publisher { public: explicit Publisher(std::shared_ptr channel); grpc::Status send_order(const trading::Order order); void start_market_data_stream(const std::string& symbol); void stop_market_data_stream(); private: std::unique_ptr _stub; std::atomic _streaming{false}; std::thread _stream_thread; void stream_market_data(const std::string& symbol); trading::Order generate_order_from_market_data(const trading::MarketData& data); };