24#include <unordered_map>
26#include <boost/thread/locks.hpp>
27#include <boost/thread/shared_mutex.hpp>
43 std::shared_ptr<apollo::cyber::Reader<RawMessage>>
reader;
55 using ReaderMap = std::unordered_map<std::string, ChannelUpdater>;
63 if (timer_initialized_) {
68 const std::string &channel_name =
"",
69 nlohmann::json *subscribe_param =
nullptr)
override;
70 void StopStream(
const std::string& channel_name =
"")
override;
71 void PublishMessage(
const std::string& channel_name =
"")
override;
74 bool SubscribeChannel(
const std::string &channel_name);
75 void ControlThrottle(
bool add_lock);
76 bool GetThrottleFlag();
77 std::unique_ptr<cyber::Node> node_;
81 bool timer_initialized_ =
false;
83 std::unique_ptr<cyber::Timer> timer_;
85 bool throttle =
false;
86 mutable boost::shared_mutex throttle_mutex_;
A wrapper around WebSocketHandler to keep pushing specified channels info to frontend via websocket.
~ChannelsUpdater() override
void StopStream(const std::string &channel_name="") override
Stop data flow.
void StartStream(const double &time_interval_ms, const std::string &channel_name="", nlohmann::json *subscribe_param=nullptr) override
Start data flow.
std::unordered_map< std::string, ChannelUpdater > ReaderMap
void PublishMessage(const std::string &channel_name="") override
Publish Message to dreamview frontend.
Base Class for all data updater.
The WebSocketHandler, built on top of CivetWebSocketHandler, is a websocket handler that handles diff...
std::shared_ptr< apollo::cyber::Reader< RawMessage > > reader
std::string channel_data_str