Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
jsk_topic_tools::ConnectionBasedNodelet Class Referenceabstract

Nodelet to automatically subscribe/unsubscribe topics according to subscription of advertised topics. More...

#include <connection_based_nodelet.h>

Inheritance diagram for jsk_topic_tools::ConnectionBasedNodelet:
Inheritance graph
[legend]

Public Member Functions

 ConnectionBasedNodelet ()
 
- Public Member Functions inherited from nodelet::Nodelet
void init (const std::string &name, const M_string &remapping_args, const V_string &my_argv, ros::CallbackQueueInterface *st_queue=NULL, ros::CallbackQueueInterface *mt_queue=NULL)
 
 Nodelet ()
 
virtual ~Nodelet ()
 

Protected Member Functions

template<class T >
ros::Publisher advertise (ros::NodeHandle &nh, std::string topic, int queue_size)
 Advertise a topic and watch the publisher. Publishers which are created by this method. It automatically reads latch boolean parameter from nh and publish topic with appropriate latch parameter. More...
 
image_transport::CameraPublisher advertiseCamera (ros::NodeHandle &nh, image_transport::ImageTransport &it, const std::string &topic, int queue_size)
 
image_transport::CameraPublisher advertiseCamera (ros::NodeHandle &nh, const std::string &topic, int queue_size)
 
image_transport::Publisher advertiseImage (ros::NodeHandle &nh, image_transport::ImageTransport &it, const std::string &topic, int queue_size)
 
image_transport::Publisher advertiseImage (ros::NodeHandle &nh, const std::string &topic, int queue_size)
 Advertise an image topic and watch the publisher. Publishers which are created by this method. It automatically reads latch boolean parameter from nh and it and publish topic with appropriate latch parameter. More...
 
virtual void cameraConnectionBaseCallback ()
 callback function which is called when new subscriber come for camera image publisher or camera info publisher. This function is called from cameraConnectionCallback or cameraInfoConnectionCallback. More...
 
virtual void cameraConnectionCallback (const image_transport::SingleSubscriberPublisher &pub)
 callback function which is called when new subscriber come for camera image publisher More...
 
virtual void cameraInfoConnectionCallback (const ros::SingleSubscriberPublisher &pub)
 callback function which is called when new subscriber come for camera info publisher More...
 
virtual void connectionCallback (const ros::SingleSubscriberPublisher &pub)
 callback function which is called when new subscriber come More...
 
virtual void imageConnectionCallback (const image_transport::SingleSubscriberPublisher &pub)
 callback function which is called when new subscriber come for image publisher More...
 
virtual bool isSubscribed ()
 Returns true when this nodelet subscribes topics, false otherwise. More...
 
virtual void onInit ()
 Initialize nodehandles nh_ and pnh_. Subclass should call this method in its onInit method. More...
 
virtual void onInitPostProcess ()
 Post processing of initialization of nodelet. You need to call this method in order to use always_subscribe feature. More...
 
virtual void subscribe ()=0
 This method is called when publisher is subscribed by other nodes. Set up subscribers in this method. More...
 
virtual void unsubscribe ()=0
 This method is called when publisher is unsubscribed by other nodes. Shut down subscribers in this method. More...
 
virtual void warnNeverSubscribedCallback (const ros::WallTimerEvent &event)
 callback function which is called when walltimer duration run out. More...
 
virtual bool warnNoRemap (const std::vector< std::string > names)
 warn if there are expected remappings. More...
 
virtual void warnOnInitPostProcessCalledCallback (const ros::WallTimerEvent &event)
 callback function which is called when walltimer duration run out. More...
 
- Protected Member Functions inherited from nodelet::Nodelet
ros::CallbackQueueInterfacegetMTCallbackQueue () const
 
ros::NodeHandlegetMTNodeHandle () const
 
ros::NodeHandlegetMTPrivateNodeHandle () const
 
const V_stringgetMyArgv () const
 
const std::string & getName () const
 
ros::NodeHandlegetNodeHandle () const
 
ros::NodeHandlegetPrivateNodeHandle () const
 
const M_stringgetRemappingArgs () const
 
ros::CallbackQueueInterfacegetSTCallbackQueue () const
 
std::string getSuffixedName (const std::string &suffix) const
 

Protected Attributes

bool always_subscribe_
 A flag to disable watching mechanism and always subscribe input topics. It can be specified via ~always_subscribe parameter. More...
 
std::vector< image_transport::CameraPublishercamera_publishers_
 List of watching camera publishers. More...
 
boost::mutex connection_mutex_
 mutex to call subscribe() and unsubscribe() in critical section. More...
 
ConnectionStatus connection_status_
 Status of connection. More...
 
bool ever_subscribed_
 A flag to check if the node has been ever subscribed or not. More...
 
std::vector< image_transport::Publisherimage_publishers_
 List of watching image publishers. More...
 
boost::shared_ptr< ros::NodeHandlenh_
 Shared pointer to nodehandle. More...
 
bool on_init_post_process_called_
 Never warning on not calling onInitPostProcess if true. More...
 
boost::shared_ptr< ros::NodeHandlepnh_
 Shared pointer to private nodehandle. More...
 
std::vector< ros::Publisherpublishers_
 List of watching publishers. More...
 
bool subscribed_
 A flag to check if any publisher is already subscribed or not. More...
 
ros::WallTimer timer_warn_never_subscribed_
 WallTimer instance for warning about no connection. More...
 
ros::WallTimer timer_warn_on_init_post_process_called_
 WallTimer instance for warning about no connection. More...
 
bool verbose_connection_
 true if ~verbose_connection or verbose_connection parameter is true. More...
 

Detailed Description

Nodelet to automatically subscribe/unsubscribe topics according to subscription of advertised topics.

It's important not to subscribe topic if no output is required.

In order to watch advertised topics, need to use advertise template method. And create subscribers in subscribe() and shutdown them in unsubscribed().

Definition at line 68 of file connection_based_nodelet.h.

Constructor & Destructor Documentation

◆ ConnectionBasedNodelet()

jsk_topic_tools::ConnectionBasedNodelet::ConnectionBasedNodelet ( )
inline

Definition at line 71 of file connection_based_nodelet.h.

Member Function Documentation

◆ advertise()

template<class T >
ros::Publisher jsk_topic_tools::ConnectionBasedNodelet::advertise ( ros::NodeHandle nh,
std::string  topic,
int  queue_size 
)
inlineprotected

Advertise a topic and watch the publisher. Publishers which are created by this method. It automatically reads latch boolean parameter from nh and publish topic with appropriate latch parameter.

Parameters
nhNodeHandle.
topictopic name to advertise.
queue_sizequeue size for publisher.
latchset true if latch topic publication.
Returns
Publisher for the advertised topic.

Definition at line 173 of file connection_based_nodelet.h.

◆ advertiseCamera() [1/2]

image_transport::CameraPublisher jsk_topic_tools::ConnectionBasedNodelet::advertiseCamera ( ros::NodeHandle nh,
image_transport::ImageTransport it,
const std::string &  topic,
int  queue_size 
)
inlineprotected

Definition at line 241 of file connection_based_nodelet.h.

◆ advertiseCamera() [2/2]

image_transport::CameraPublisher jsk_topic_tools::ConnectionBasedNodelet::advertiseCamera ( ros::NodeHandle nh,
const std::string &  topic,
int  queue_size 
)
inlineprotected

Definition at line 251 of file connection_based_nodelet.h.

◆ advertiseImage() [1/2]

image_transport::Publisher jsk_topic_tools::ConnectionBasedNodelet::advertiseImage ( ros::NodeHandle nh,
image_transport::ImageTransport it,
const std::string &  topic,
int  queue_size 
)
inlineprotected

Definition at line 194 of file connection_based_nodelet.h.

◆ advertiseImage() [2/2]

image_transport::Publisher jsk_topic_tools::ConnectionBasedNodelet::advertiseImage ( ros::NodeHandle nh,
const std::string &  topic,
int  queue_size 
)
inlineprotected

Advertise an image topic and watch the publisher. Publishers which are created by this method. It automatically reads latch boolean parameter from nh and it and publish topic with appropriate latch parameter.

Parameters
nhNodeHandle.
topictopic name to advertise.
queue_sizequeue size for publisher.
latchset true if latch topic publication.
Returns
Publisher for the advertised topic.

Definition at line 216 of file connection_based_nodelet.h.

◆ cameraConnectionBaseCallback()

void jsk_topic_tools::ConnectionBasedNodelet::cameraConnectionBaseCallback ( )
protectedvirtual

callback function which is called when new subscriber come for camera image publisher or camera info publisher. This function is called from cameraConnectionCallback or cameraInfoConnectionCallback.

Definition at line 214 of file connection_based_nodelet.cpp.

◆ cameraConnectionCallback()

void jsk_topic_tools::ConnectionBasedNodelet::cameraConnectionCallback ( const image_transport::SingleSubscriberPublisher pub)
protectedvirtual

callback function which is called when new subscriber come for camera image publisher

Definition at line 202 of file connection_based_nodelet.cpp.

◆ cameraInfoConnectionCallback()

void jsk_topic_tools::ConnectionBasedNodelet::cameraInfoConnectionCallback ( const ros::SingleSubscriberPublisher pub)
protectedvirtual

callback function which is called when new subscriber come for camera info publisher

Definition at line 208 of file connection_based_nodelet.cpp.

◆ connectionCallback()

void jsk_topic_tools::ConnectionBasedNodelet::connectionCallback ( const ros::SingleSubscriberPublisher pub)
protectedvirtual

callback function which is called when new subscriber come

Definition at line 135 of file connection_based_nodelet.cpp.

◆ imageConnectionCallback()

void jsk_topic_tools::ConnectionBasedNodelet::imageConnectionCallback ( const image_transport::SingleSubscriberPublisher pub)
protectedvirtual

callback function which is called when new subscriber come for image publisher

Definition at line 168 of file connection_based_nodelet.cpp.

◆ isSubscribed()

bool jsk_topic_tools::ConnectionBasedNodelet::isSubscribed ( )
inlineprotectedvirtual

Returns true when this nodelet subscribes topics, false otherwise.

Definition at line 90 of file connection_based_nodelet.cpp.

◆ onInit()

void jsk_topic_tools::ConnectionBasedNodelet::onInit ( )
protectedvirtual

Initialize nodehandles nh_ and pnh_. Subclass should call this method in its onInit method.

Implements nodelet::Nodelet.

Reimplemented in jsk_topic_tools::DiagnosticNodelet, jsk_topic_tools::VitalCheckerNodelet, and jsk_topic_tools::StringRelay.

Definition at line 41 of file connection_based_nodelet.cpp.

◆ onInitPostProcess()

void jsk_topic_tools::ConnectionBasedNodelet::onInitPostProcess ( )
protectedvirtual

Post processing of initialization of nodelet. You need to call this method in order to use always_subscribe feature.

Definition at line 80 of file connection_based_nodelet.cpp.

◆ subscribe()

virtual void jsk_topic_tools::ConnectionBasedNodelet::subscribe ( )
protectedpure virtual

This method is called when publisher is subscribed by other nodes. Set up subscribers in this method.

Implemented in jsk_topic_tools::VitalCheckerNodelet, and jsk_topic_tools::StringRelay.

◆ unsubscribe()

virtual void jsk_topic_tools::ConnectionBasedNodelet::unsubscribe ( )
protectedpure virtual

This method is called when publisher is unsubscribed by other nodes. Shut down subscribers in this method.

Implemented in jsk_topic_tools::VitalCheckerNodelet, and jsk_topic_tools::StringRelay.

◆ warnNeverSubscribedCallback()

void jsk_topic_tools::ConnectionBasedNodelet::warnNeverSubscribedCallback ( const ros::WallTimerEvent event)
protectedvirtual

callback function which is called when walltimer duration run out.

Definition at line 103 of file connection_based_nodelet.cpp.

◆ warnNoRemap()

bool jsk_topic_tools::ConnectionBasedNodelet::warnNoRemap ( const std::vector< std::string >  names)
protectedvirtual

warn if there are expected remappings.

Parameters
[in]namesNames which are expected to remapped.
Returns
false if there is at least a topic which is not remapped, else true;

Definition at line 110 of file connection_based_nodelet.cpp.

◆ warnOnInitPostProcessCalledCallback()

void jsk_topic_tools::ConnectionBasedNodelet::warnOnInitPostProcessCalledCallback ( const ros::WallTimerEvent event)
protectedvirtual

callback function which is called when walltimer duration run out.

Definition at line 96 of file connection_based_nodelet.cpp.

Member Data Documentation

◆ always_subscribe_

bool jsk_topic_tools::ConnectionBasedNodelet::always_subscribe_
protected

A flag to disable watching mechanism and always subscribe input topics. It can be specified via ~always_subscribe parameter.

Definition at line 333 of file connection_based_nodelet.h.

◆ camera_publishers_

std::vector<image_transport::CameraPublisher> jsk_topic_tools::ConnectionBasedNodelet::camera_publishers_
protected

List of watching camera publishers.

Definition at line 300 of file connection_based_nodelet.h.

◆ connection_mutex_

boost::mutex jsk_topic_tools::ConnectionBasedNodelet::connection_mutex_
protected

mutex to call subscribe() and unsubscribe() in critical section.

Definition at line 285 of file connection_based_nodelet.h.

◆ connection_status_

ConnectionStatus jsk_topic_tools::ConnectionBasedNodelet::connection_status_
protected

Status of connection.

Definition at line 338 of file connection_based_nodelet.h.

◆ ever_subscribed_

bool jsk_topic_tools::ConnectionBasedNodelet::ever_subscribed_
protected

A flag to check if the node has been ever subscribed or not.

Definition at line 327 of file connection_based_nodelet.h.

◆ image_publishers_

std::vector<image_transport::Publisher> jsk_topic_tools::ConnectionBasedNodelet::image_publishers_
protected

List of watching image publishers.

Definition at line 295 of file connection_based_nodelet.h.

◆ nh_

boost::shared_ptr<ros::NodeHandle> jsk_topic_tools::ConnectionBasedNodelet::nh_
protected

Shared pointer to nodehandle.

Definition at line 305 of file connection_based_nodelet.h.

◆ on_init_post_process_called_

bool jsk_topic_tools::ConnectionBasedNodelet::on_init_post_process_called_
protected

Never warning on not calling onInitPostProcess if true.

Definition at line 348 of file connection_based_nodelet.h.

◆ pnh_

boost::shared_ptr<ros::NodeHandle> jsk_topic_tools::ConnectionBasedNodelet::pnh_
protected

Shared pointer to private nodehandle.

Definition at line 310 of file connection_based_nodelet.h.

◆ publishers_

std::vector<ros::Publisher> jsk_topic_tools::ConnectionBasedNodelet::publishers_
protected

List of watching publishers.

Definition at line 290 of file connection_based_nodelet.h.

◆ subscribed_

bool jsk_topic_tools::ConnectionBasedNodelet::subscribed_
protected

A flag to check if any publisher is already subscribed or not.

Definition at line 321 of file connection_based_nodelet.h.

◆ timer_warn_never_subscribed_

ros::WallTimer jsk_topic_tools::ConnectionBasedNodelet::timer_warn_never_subscribed_
protected

WallTimer instance for warning about no connection.

Definition at line 315 of file connection_based_nodelet.h.

◆ timer_warn_on_init_post_process_called_

ros::WallTimer jsk_topic_tools::ConnectionBasedNodelet::timer_warn_on_init_post_process_called_
protected

WallTimer instance for warning about no connection.

Definition at line 353 of file connection_based_nodelet.h.

◆ verbose_connection_

bool jsk_topic_tools::ConnectionBasedNodelet::verbose_connection_
protected

true if ~verbose_connection or verbose_connection parameter is true.

Definition at line 343 of file connection_based_nodelet.h.


The documentation for this class was generated from the following files:


jsk_topic_tools
Author(s): Kei Okada , Yusuke Furuta
autogenerated on Thu May 9 2019 02:13:17