// Copyright (c) FIRST and other WPILib contributors. // Open Source Software; you can modify and/or share it under the terms of // the WPILib BSD license file in the root directory of this 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; };