Base for lazy subscribers that subscribes only when a paired publisher has subscribers. More...
#include <lazy_subscriber.hpp>

Public Member Functions | |
| LazySubscriberBase (::ros::NodeHandle publisherNh, const ::std::string &publisherTopic, typename ::cras::ConditionalSubscriber::ConnectFn connectFn, typename ::cras::ConditionalSubscriber::DisconnectFn disconnectFn, const ::cras::LogHelperPtr &logHelper=::std::make_shared<::cras::NodeLogHelper >()) | |
Create the lazy subscriber that subscribes only when publisherTopic has subscribers. More... | |
| LazySubscriberBase (::ros::NodeHandle publisherNh, const ::std::string &publisherTopic, typename ::cras::ConditionalSubscriber::ConnectFn connectFn, const ::cras::LogHelperPtr &logHelper=::std::make_shared<::cras::NodeLogHelper >()) | |
Create the lazy subscriber that subscribes only when publisherTopic has subscribers. More... | |
Public Member Functions inherited from cras::ConditionalSubscriber | |
| ConditionalSubscriber (ConnectFn connectFn, DisconnectFn disconnectFn, const ::cras::LogHelperPtr &logHelper=::std::make_shared<::cras::NodeLogHelper >()) | |
| Create the conditional subscriber. More... | |
| ConditionalSubscriber (ConnectFn connectFn, const ::cras::LogHelperPtr &logHelper=::std::make_shared<::cras::NodeLogHelper >()) | |
| Create the conditional subscriber. More... | |
| bool | isLazy () const |
| Tell whether this subscriber has the lazy behavior enabled. More... | |
| bool | isSubscribed () const |
| Whether the subscriber is currently subscribed to its topic or not. More... | |
| void | setLazy (bool lazy) |
| Set whether the subscriber behaves in the lazy way. More... | |
| virtual | ~ConditionalSubscriber () |
| Destroy this object and unsubscribe the subscriber if it was subscribed. More... | |
Public Member Functions inherited from cras::HasLogger | |
| ::cras::LogHelperConstPtr | getCrasLogger () const |
| HasLogger (const ::cras::LogHelperPtr &log) | |
| void | setCrasLogger (const ::cras::LogHelperPtr &log) |
Protected Member Functions | |
| void | connectCb (const ::ros::SingleSubscriberPublisher &) |
| The callback called when a new subscriber appears or disappears. More... | |
| bool | shouldBeSubscribed () const override |
| Tell whether the subscriber should be subscribed or not. More... | |
Protected Member Functions inherited from cras::ConditionalSubscriber | |
| void | connectNoLock () |
| Connect the subscriber to its input. More... | |
| void | disconnectNoLock () |
| Disconnect the subscriber from its input. More... | |
| void | updateSubscription () |
| The callback called when the condition might have changed. More... | |
| void | updateSubscriptionNoLock () |
| The callback called when the condition might have changed. More... | |
Protected Attributes | |
| ::ros::Publisher | pub |
| The publisher whose number of subscribers decides whether to connect or not. It is not used to publish any actual messages. More... | |
Protected Attributes inherited from cras::ConditionalSubscriber | |
| ConnectFn | connectFn |
| The function used to establish connection. More... | |
| mutable ::std::mutex | connectMutex |
Mutex protecting sub and subscribed. More... | |
| DisconnectFn | disconnectFn |
| The function used to close connection. More... | |
| bool | lazy {true} |
| Whether the lazy behavior is enabled (if false, the subscriber is always subscribed). More... | |
| ::ros::Subscriber | sub |
The underlying subscriber (valid only when subscribed is true). More... | |
| bool | subscribed {false} |
| Whether the subscriber is currently subscribed to its topic or not. More... | |
Protected Attributes inherited from cras::HasLogger | |
| ::cras::LogHelperPtr | log |
Additional Inherited Members | |
Public Types inherited from cras::ConditionalSubscriber | |
| typedef ::std::function< void(::ros::Subscriber &sub)> | ConnectFn |
| Type of the function that connects the subscriber. More... | |
| typedef ::std::function< void(::ros::Subscriber &sub)> | DisconnectFn |
| Type of the function that disconnects the subscriber. More... | |
Base for lazy subscribers that subscribes only when a paired publisher has subscribers.
| PublisherMsgType | Type of the publisher messages. |
Definition at line 149 of file lazy_subscriber.hpp.
| cras::LazySubscriberBase< PublisherMsgType >::LazySubscriberBase | ( | ::ros::NodeHandle | publisherNh, |
| const ::std::string & | publisherTopic, | ||
| typename ::cras::ConditionalSubscriber::ConnectFn | connectFn, | ||
| typename ::cras::ConditionalSubscriber::DisconnectFn | disconnectFn, | ||
| const ::cras::LogHelperPtr & | logHelper = ::std::make_shared<::cras::NodeLogHelper>() |
||
| ) |
Create the lazy subscriber that subscribes only when publisherTopic has subscribers.
| [in] | publisherNh | Node handle used for publisher topic. |
| [in] | publisherTopic | The topic whose number of subscribers decides whether to connect or not. |
| [in] | connectFn | The function that connects the subscriber. It should store the subscriber in the passed sub object. |
| [in] | disconnectFn | The function that disconnects the subscriber. The sub object passed to the function is the one created previously by connectFn. The passed subscriber should be invalidated. |
| [in] | logHelper | Logging helper. |
Definition at line 32 of file impl/lazy_subscriber.hpp.
| cras::LazySubscriberBase< PublisherMsgType >::LazySubscriberBase | ( | ::ros::NodeHandle | publisherNh, |
| const ::std::string & | publisherTopic, | ||
| typename ::cras::ConditionalSubscriber::ConnectFn | connectFn, | ||
| const ::cras::LogHelperPtr & | logHelper = ::std::make_shared<::cras::NodeLogHelper>() |
||
| ) |
Create the lazy subscriber that subscribes only when publisherTopic has subscribers.
| [in] | publisherNh | Node handle used for publisher topic. |
| [in] | publisherTopic | The topic whose number of subscribers decides whether to connect or not. |
| [in] | connectFn | The function that connects the subscriber. It should store the subscriber in the passed sub object. Disconnection of the subscriber is done by simply calling sub.shutdown(). |
| [in] | logHelper | Logging helper. |
Definition at line 50 of file impl/lazy_subscriber.hpp.
|
protected |
The callback called when a new subscriber appears or disappears.
|
overrideprotectedvirtual |
Tell whether the subscriber should be subscribed or not.
lazy flag. connectMutex. Implements cras::ConditionalSubscriber.
|
protected |
The publisher whose number of subscribers decides whether to connect or not. It is not used to publish any actual messages.
Definition at line 189 of file lazy_subscriber.hpp.