/*----------------------------------------------------------------------------*/ /* Copyright (c) 2014-2018 FIRST. All Rights Reserved. */ /* Open Source Software - may be modified and shared by FRC teams. The code */ /* must be accompanied by the FIRST BSD license file in the root directory of */ /* the project. */ /*----------------------------------------------------------------------------*/ #pragma once #include #include #include class GazeboNode { public: bool Connect(); template gazebo::transport::PublisherPtr Advertise(const std::string& topic, int queueLimit = 10, bool latch = false) { return main->Advertise(topic, queueLimit, latch); } template gazebo::transport::SubscriberPtr Subscribe( const std::string& topic, void (T::*fp)(const boost::shared_ptr&), T* obj, bool latching = false) { return main->Subscribe(topic, fp, obj, latching); } template gazebo::transport::SubscriberPtr Subscribe( const std::string& topic, void (*fp)(const boost::shared_ptr&), bool latching = false) { return main->Subscribe(topic, fp, latching); } private: gazebo::transport::NodePtr main; };