mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-29 02:21:44 +00:00
Also update copyright to include "and other WPILib contributors" and clarify license referral language to not be restricted to FIRST teams.
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
// 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 <string>
|
|
|
|
#include <gazebo/gazebo_client.hh>
|
|
#include <gazebo/transport/transport.hh>
|
|
|
|
class GazeboNode {
|
|
public:
|
|
bool Connect();
|
|
|
|
template <typename M>
|
|
gazebo::transport::PublisherPtr Advertise(const std::string& topic,
|
|
int queueLimit = 10,
|
|
bool latch = false) {
|
|
return main->Advertise<M>(topic, queueLimit, latch);
|
|
}
|
|
|
|
template <typename M, typename T>
|
|
gazebo::transport::SubscriberPtr Subscribe(
|
|
const std::string& topic,
|
|
void (T::*fp)(const boost::shared_ptr<M const>&), T* obj,
|
|
bool latching = false) {
|
|
return main->Subscribe(topic, fp, obj, latching);
|
|
}
|
|
|
|
template <typename M>
|
|
gazebo::transport::SubscriberPtr Subscribe(
|
|
const std::string& topic, void (*fp)(const boost::shared_ptr<M const>&),
|
|
bool latching = false) {
|
|
return main->Subscribe(topic, fp, latching);
|
|
}
|
|
|
|
private:
|
|
gazebo::transport::NodePtr main;
|
|
};
|