26 #include <boost/shared_ptr.hpp>
27 #include <boost/function.hpp>
54 template<
class MSG_TYPE>
55 void subscribe(
const std::string& address,
const boost::function<
void (
const boost::shared_ptr<MSG_TYPE const>&)>& callback,
size_t queueSize = 10)
56 { _subscribers.push_back(_node->subscribe<MSG_TYPE>(address, queueSize, callback)); }
61 template<
class MSG_TYPE>
62 void publish(
const std::string& address,
const MSG_TYPE& msg,
size_t queueSize = 10)
64 if(!_publishers.count(address))
65 _publishers.emplace(address, _node->advertise<MSG_TYPE>(address, queueSize));
67 _publishers[address].publish(msg);
72 std::shared_ptr<ros::NodeHandle> _node;
73 std::map<std::string, ros::Publisher> _publishers;
74 std::vector<ros::Subscriber> _subscribers;
80 { _node.reset(
new ros::NodeHandle()); }
82 static std::unique_ptr<NRPROSProxy> _instance;