ros::TopicManager Class Reference

#include <topic_manager.h>

List of all members.

Public Member Functions

bool advertise (const AdvertiseOptions &ops, const SubscriberCallbacksPtr &callbacks)
void getAdvertisedTopics (V_string &topics)
 Get the list of topics advertised by this node.
size_t getNumPublishers (const std::string &_topic)
 Return the number of publishers connected to this node on a particular topic.
size_t getNumSubscribers (const std::string &_topic)
 Return the number of subscribers a node has for a particular topic:
size_t getNumSubscriptions ()
void getSubscribedTopics (V_string &topics)
 Get the list of topics subscribed to by this node.
void incrementSequence (const std::string &_topic)
bool isLatched (const std::string &topic)
PublicationPtr lookupPublication (const std::string &topic)
 Lookup an advertised topic.
void publish (const std::string &_topic, const boost::function< SerializedMessage(void)> &serfunc, SerializedMessage &m)
template<typename M >
void publish (const std::string &topic, const M &message)
void shutdown ()
void start ()
bool subscribe (const SubscribeOptions &ops)
 TopicManager ()
bool unadvertise (const std::string &topic, const SubscriberCallbacksPtr &callbacks)
bool unsubscribe (const std::string &_topic, const SubscriptionCallbackHelperPtr &helper)
 ~TopicManager ()

Static Public Member Functions

static const TopicManagerPtrinstance ()

Private Member Functions

bool addSubCallback (const SubscribeOptions &ops)
void getBusInfo (XmlRpc::XmlRpcValue &info)
 Compute the info for the node's connectivity.
void getBusInfoCallback (XmlRpc::XmlRpcValue &params, XmlRpc::XmlRpcValue &result)
void getBusStats (XmlRpc::XmlRpcValue &stats)
 Compute the statistics for the node's connectivity.
void getBusStatsCallback (XmlRpc::XmlRpcValue &params, XmlRpc::XmlRpcValue &result)
void getPublications (XmlRpc::XmlRpcValue &publications)
 Return the list of advertised topics for the node.
void getPublicationsCallback (XmlRpc::XmlRpcValue &params, XmlRpc::XmlRpcValue &result)
void getSubscriptions (XmlRpc::XmlRpcValue &subscriptions)
 Return the list of subcriptions for the node.
void getSubscriptionsCallback (XmlRpc::XmlRpcValue &params, XmlRpc::XmlRpcValue &result)
bool isShuttingDown ()
bool isTopicAdvertised (const std::string &topic)
PublicationPtr lookupPublicationWithoutLock (const std::string &topic)
void processPublishQueues ()
bool pubUpdate (const std::string &topic, const std::vector< std::string > &pubs)
 Update local publisher lists.
void pubUpdateCallback (XmlRpc::XmlRpcValue &params, XmlRpc::XmlRpcValue &result)
bool registerSubscriber (const SubscriptionPtr &s, const std::string &datatype)
bool requestTopic (const std::string &topic, XmlRpc::XmlRpcValue &protos, XmlRpc::XmlRpcValue &ret)
 Request a topic.
void requestTopicCallback (XmlRpc::XmlRpcValue &params, XmlRpc::XmlRpcValue &result)
bool unregisterPublisher (const std::string &topic)
bool unregisterSubscriber (const std::string &topic)

Private Attributes

std::list< std::string > advertised_topic_names_
boost::mutex advertised_topic_names_mutex_
V_Publication advertised_topics_
boost::recursive_mutex advertised_topics_mutex_
ConnectionManagerPtr connection_manager_
PollManagerPtr poll_manager_
volatile bool shutting_down_
boost::mutex shutting_down_mutex_
boost::mutex subs_mutex_
L_Subscription subscriptions_
XMLRPCManagerPtr xmlrpc_manager_

Detailed Description

Definition at line 56 of file topic_manager.h.


Constructor & Destructor Documentation

ros::TopicManager::TopicManager (  ) 

Definition at line 72 of file topic_manager.cpp.

ros::TopicManager::~TopicManager (  ) 

Definition at line 77 of file topic_manager.cpp.


Member Function Documentation

bool ros::TopicManager::addSubCallback ( const SubscribeOptions ops  )  [private]

if it finds a pre-existing subscription to the same topic and of the same message type, it appends the Functor to the callback vector for that subscription. otherwise, it returns false, indicating that a new subscription needs to be created.

Definition at line 204 of file topic_manager.cpp.

bool ros::TopicManager::advertise ( const AdvertiseOptions ops,
const SubscriberCallbacksPtr callbacks 
)

Definition at line 299 of file topic_manager.cpp.

void ros::TopicManager::getAdvertisedTopics ( V_string topics  ) 

Get the list of topics advertised by this node.

Parameters:
[out] topics The advertised topics

Definition at line 168 of file topic_manager.cpp.

void ros::TopicManager::getBusInfo ( XmlRpc::XmlRpcValue &  info  )  [private]

Compute the info for the node's connectivity.

This is the implementation of the xml-rpc getBusInfo function; it populates the XmlRpcValue object sent to it with various info about the node's connectivity.

void ros::TopicManager::getBusInfoCallback ( XmlRpc::XmlRpcValue &  params,
XmlRpc::XmlRpcValue &  result 
) [private]

Definition at line 1032 of file topic_manager.cpp.

void ros::TopicManager::getBusStats ( XmlRpc::XmlRpcValue &  stats  )  [private]

Compute the statistics for the node's connectivity.

This is the implementation of the xml-rpc getBusStats function; it populates the XmlRpcValue object sent to it with various statistics about the node's connectivity, bandwidth utilization, etc.

void ros::TopicManager::getBusStatsCallback ( XmlRpc::XmlRpcValue &  params,
XmlRpc::XmlRpcValue &  result 
) [private]

Definition at line 1023 of file topic_manager.cpp.

size_t ros::TopicManager::getNumPublishers ( const std::string &  _topic  ) 

Return the number of publishers connected to this node on a particular topic.

Parameters:
_topic the topic name to check
Returns:
the number of subscribers

Definition at line 863 of file topic_manager.cpp.

size_t ros::TopicManager::getNumSubscribers ( const std::string &  _topic  ) 

Return the number of subscribers a node has for a particular topic:

Parameters:
_topic The topic name to check
Returns:
number of subscribers

Definition at line 839 of file topic_manager.cpp.

size_t ros::TopicManager::getNumSubscriptions (  ) 

Definition at line 857 of file topic_manager.cpp.

void ros::TopicManager::getPublications ( XmlRpc::XmlRpcValue &  publications  )  [private]

Return the list of advertised topics for the node.

This is the implementation of the xml-rpc getPublications function; it populates the XmlRpcValue object sent to it with the list of advertised topics and their datatypes.

void ros::TopicManager::getPublicationsCallback ( XmlRpc::XmlRpcValue &  params,
XmlRpc::XmlRpcValue &  result 
) [private]

Definition at line 1050 of file topic_manager.cpp.

void ros::TopicManager::getSubscribedTopics ( V_string topics  ) 

Get the list of topics subscribed to by this node.

Parameters:
[out] The subscribed topics

Definition at line 178 of file topic_manager.cpp.

void ros::TopicManager::getSubscriptions ( XmlRpc::XmlRpcValue &  subscriptions  )  [private]

Return the list of subcriptions for the node.

This is the implementation of the xml-rpc getSubscriptions function; it populates the XmlRpcValue object sent to it with the list of subscribed topics and their datatypes.

void ros::TopicManager::getSubscriptionsCallback ( XmlRpc::XmlRpcValue &  params,
XmlRpc::XmlRpcValue &  result 
) [private]

Definition at line 1041 of file topic_manager.cpp.

void ros::TopicManager::incrementSequence ( const std::string &  _topic  ) 

Definition at line 751 of file topic_manager.cpp.

const TopicManagerPtr & ros::TopicManager::instance (  )  [static]

Definition at line 58 of file topic_manager.cpp.

bool ros::TopicManager::isLatched ( const std::string &  topic  ) 

Definition at line 760 of file topic_manager.cpp.

bool ros::TopicManager::isShuttingDown (  )  [inline, private]

Definition at line 212 of file topic_manager.h.

bool ros::TopicManager::isTopicAdvertised ( const std::string &  topic  )  [private]
PublicationPtr ros::TopicManager::lookupPublication ( const std::string &  topic  ) 

Lookup an advertised topic.

This method iterates over advertised_topics, looking for one with name matching the given topic name. The advertised_topics_mutex is locked during this search. This method is only used internally.

Parameters:
topic The topic name to look for.
Returns:
Pointer to the matching Publication, NULL if none is found.

Definition at line 192 of file topic_manager.cpp.

PublicationPtr ros::TopicManager::lookupPublicationWithoutLock ( const std::string &  topic  )  [private]
void ros::TopicManager::processPublishQueues (  )  [private]

Definition at line 155 of file topic_manager.cpp.

void ros::TopicManager::publish ( const std::string &  _topic,
const boost::function< SerializedMessage(void)> &  serfunc,
SerializedMessage &  m 
)

Definition at line 693 of file topic_manager.cpp.

template<typename M >
void ros::TopicManager::publish ( const std::string &  topic,
const M &  message 
) [inline]

Definition at line 115 of file topic_manager.h.

bool ros::TopicManager::pubUpdate ( const std::string &  topic,
const std::vector< std::string > &  pubs 
) [private]

Update local publisher lists.

Use this method to update address information for publishers on a given topic.

Parameters:
topic The topic of interest
pubs The list of publishers to update.
Returns:
true on success, false otherwise.
void ros::TopicManager::pubUpdateCallback ( XmlRpc::XmlRpcValue &  params,
XmlRpc::XmlRpcValue &  result 
) [private]

Definition at line 986 of file topic_manager.cpp.

bool ros::TopicManager::registerSubscriber ( const SubscriptionPtr s,
const std::string &  datatype 
) [private]
bool ros::TopicManager::requestTopic ( const std::string &  topic,
XmlRpc::XmlRpcValue &  protos,
XmlRpc::XmlRpcValue &  ret 
) [private]

Request a topic.

Negotiate a subscriber connection on a topic.

Parameters:
topic The topic of interest.
protos List of transport protocols, in preference order
ret Return value
Returns:
true on success, false otherwise
Todo:
Consider making this private
void ros::TopicManager::requestTopicCallback ( XmlRpc::XmlRpcValue &  params,
XmlRpc::XmlRpcValue &  result 
) [private]

Definition at line 1009 of file topic_manager.cpp.

void ros::TopicManager::shutdown (  ) 

Definition at line 101 of file topic_manager.cpp.

void ros::TopicManager::start (  ) 

Definition at line 82 of file topic_manager.cpp.

bool ros::TopicManager::subscribe ( const SubscribeOptions ops  ) 

Definition at line 252 of file topic_manager.cpp.

bool ros::TopicManager::unadvertise ( const std::string &  topic,
const SubscriberCallbacksPtr callbacks 
)

Definition at line 408 of file topic_manager.cpp.

bool ros::TopicManager::unregisterPublisher ( const std::string &  topic  )  [private]

Definition at line 457 of file topic_manager.cpp.

bool ros::TopicManager::unregisterSubscriber ( const std::string &  topic  )  [private]
bool ros::TopicManager::unsubscribe ( const std::string &  _topic,
const SubscriptionCallbackHelperPtr helper 
)

Definition at line 787 of file topic_manager.cpp.


Member Data Documentation

std::list<std::string> ros::TopicManager::advertised_topic_names_ [private]

Definition at line 219 of file topic_manager.h.

Definition at line 220 of file topic_manager.h.

Definition at line 218 of file topic_manager.h.

boost::recursive_mutex ros::TopicManager::advertised_topics_mutex_ [private]

Definition at line 217 of file topic_manager.h.

Definition at line 226 of file topic_manager.h.

Definition at line 225 of file topic_manager.h.

volatile bool ros::TopicManager::shutting_down_ [private]

Definition at line 222 of file topic_manager.h.

Definition at line 223 of file topic_manager.h.

boost::mutex ros::TopicManager::subs_mutex_ [private]

Definition at line 214 of file topic_manager.h.

Definition at line 215 of file topic_manager.h.

Definition at line 227 of file topic_manager.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


roscpp
Author(s): Morgan Quigley mquigley@cs.stanford.edu, Josh Faust jfaust@willowgarage.com, Brian Gerkey gerkey@willowgarage.com
autogenerated on Fri Jan 11 10:08:41 2013