Nodelet to automatically subscribe/unsubscribe topics according to subscription of advertised topics. More...
#include <nodelet_lazy.h>
Public Member Functions | |
NodeletLazy () | |
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, bool latch=false) |
Update the list of Publishers created by this method. It automatically reads latch boolean parameter from nh and publish topic with appropriate latch parameter. More... | |
virtual void | connectionCallback (const ros::SingleSubscriberPublisher &pub) |
callback function which is called when new subscriber come 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... | |
Protected Member Functions inherited from nodelet::Nodelet | |
ros::CallbackQueueInterface & | getMTCallbackQueue () const |
ros::NodeHandle & | getMTNodeHandle () const |
ros::NodeHandle & | getMTPrivateNodeHandle () const |
const V_string & | getMyArgv () const |
const std::string & | getName () const |
ros::NodeHandle & | getNodeHandle () const |
ros::NodeHandle & | getPrivateNodeHandle () const |
const M_string & | getRemappingArgs () const |
ros::CallbackQueueInterface & | getSTCallbackQueue () const |
std::string | getSuffixedName (const std::string &suffix) const |
Protected Attributes | |
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... | |
bool | lazy_ |
A flag to disable watching mechanism and always subscribe input topics. It can be specified via ~lazy parameter. More... | |
boost::shared_ptr< ros::NodeHandle > | nh_ |
Shared pointer to nodehandle. More... | |
boost::shared_ptr< ros::NodeHandle > | pnh_ |
Shared pointer to private nodehandle. More... | |
std::vector< ros::Publisher > | publishers_ |
List of watching publishers. More... | |
ros::WallTimer | timer_ever_subscribed_ |
WallTimer instance for warning about no connection. More... | |
bool | verbose_connection_ |
true if ~verbose_connection or verbose_connection parameter is true. More... | |
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 70 of file nodelet_lazy.h.
|
inline |
Definition at line 73 of file nodelet_lazy.h.
|
inlineprotected |
Update the list of Publishers created by this method. It automatically reads latch boolean parameter from nh and publish topic with appropriate latch parameter.
nh | NodeHandle. |
topic | topic name to advertise. |
queue_size | queue size for publisher. |
latch | set true if latch topic publication. |
Definition at line 219 of file nodelet_lazy.h.
|
inlineprotectedvirtual |
callback function which is called when new subscriber come
Definition at line 138 of file nodelet_lazy.h.
|
inlineprotectedvirtual |
Initialize nodehandles nh_ and pnh_. Subclass should call this method in its onInit method.
Implements nodelet::Nodelet.
Definition at line 80 of file nodelet_lazy.h.
|
inlineprotectedvirtual |
Post processing of initialization of nodelet. You need to call this method in order to use always_subscribe feature.
Definition at line 125 of file nodelet_lazy.h.
|
protectedpure virtual |
This method is called when publisher is subscribed by other nodes. Set up subscribers in this method.
|
protectedpure virtual |
This method is called when publisher is unsubscribed by other nodes. Shut down subscribers in this method.
|
inlineprotectedvirtual |
callback function which is called when walltimer duration run out.
Definition at line 184 of file nodelet_lazy.h.
|
protected |
mutex to call subscribe() and unsubscribe() in critical section.
Definition at line 240 of file nodelet_lazy.h.
|
protected |
Status of connection.
Definition at line 277 of file nodelet_lazy.h.
|
protected |
A flag to check if the node has been ever subscribed or not.
Definition at line 266 of file nodelet_lazy.h.
|
protected |
A flag to disable watching mechanism and always subscribe input topics. It can be specified via ~lazy
parameter.
Definition at line 272 of file nodelet_lazy.h.
|
protected |
Shared pointer to nodehandle.
Definition at line 245 of file nodelet_lazy.h.
|
protected |
Shared pointer to private nodehandle.
Definition at line 250 of file nodelet_lazy.h.
|
protected |
List of watching publishers.
Definition at line 255 of file nodelet_lazy.h.
|
protected |
WallTimer instance for warning about no connection.
Definition at line 260 of file nodelet_lazy.h.
|
protected |
true if ~verbose_connection
or verbose_connection
parameter is true.
Definition at line 282 of file nodelet_lazy.h.