#pragma once #include "ros_bridge/rapidjson/include/rapidjson/document.h" #include #include #include "boost/lockfree/queue.hpp" #include "ros_bridge/include/ namespace ROSBridge { namespace lf = ::boost::lockfree; class Communicator { typedef std::unique_ptr UniqueJsonPtr; typedef std::tuple MsgTopicHashPair; public: explicit Communicator() {} void send(UniqueJsonPtr &msg); void start(); void stop(); virtual UniqueJsonPtr receive() = 0; private: lf::queue _transmittBuffer; lf::queue _receiveBuffer; }; }