Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
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.
template<typename M >
void publish (const std::string &topic, const M &message)
void publish (const std::string &_topic, const boost::function< SerializedMessage(void)> &serfunc, SerializedMessage &m)
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 TopicManagerPtr & instance ()

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 63 of file topic_manager.h.


Constructor & Destructor Documentation

Definition at line 72 of file topic_manager.cpp.

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]topicsThe 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.

Definition at line 938 of file topic_manager.cpp.

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

Definition at line 1053 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.

Definition at line 905 of file topic_manager.cpp.

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

Definition at line 1044 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:
_topicthe topic name to check
Returns:
the number of subscribers

Definition at line 884 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:
_topicThe topic name to check
Returns:
number of subscribers

Definition at line 860 of file topic_manager.cpp.

Definition at line 878 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.

Definition at line 983 of file topic_manager.cpp.

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

Definition at line 1071 of file topic_manager.cpp.

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

Get the list of topics subscribed to by this node.

Parameters:
[out]Thesubscribed 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.

Definition at line 963 of file topic_manager.cpp.

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

Definition at line 1062 of file topic_manager.cpp.

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

Definition at line 763 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 772 of file topic_manager.cpp.

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

Definition at line 219 of file topic_manager.h.

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

Definition at line 468 of file topic_manager.cpp.

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:
topicThe 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]

Definition at line 783 of file topic_manager.cpp.

Definition at line 155 of file topic_manager.cpp.

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

Definition at line 122 of file topic_manager.h.

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

Definition at line 705 of file topic_manager.cpp.

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:
topicThe topic of interest
pubsThe list of publishers to update.
Returns:
true on success, false otherwise.

Definition at line 556 of file topic_manager.cpp.

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

Definition at line 1007 of file topic_manager.cpp.

bool ros::TopicManager::registerSubscriber ( const SubscriptionPtr &  s,
const std::string &  datatype 
) [private]

Definition at line 481 of file topic_manager.cpp.

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:
topicThe topic of interest.
protosList of transport protocols, in preference order
retReturn value
Returns:
true on success, false otherwise
Todo:
Consider making this private

Definition at line 594 of file topic_manager.cpp.

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

Definition at line 1030 of file topic_manager.cpp.

Definition at line 101 of file topic_manager.cpp.

Definition at line 82 of file topic_manager.cpp.

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]

Definition at line 544 of file topic_manager.cpp.

bool ros::TopicManager::unsubscribe ( const std::string &  _topic,
const SubscriptionCallbackHelperPtr &  helper 
)

Definition at line 799 of file topic_manager.cpp.


Member Data Documentation

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

Definition at line 226 of file topic_manager.h.

Definition at line 227 of file topic_manager.h.

V_Publication ros::TopicManager::advertised_topics_ [private]

Definition at line 225 of file topic_manager.h.

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

Definition at line 224 of file topic_manager.h.

ConnectionManagerPtr ros::TopicManager::connection_manager_ [private]

Definition at line 233 of file topic_manager.h.

PollManagerPtr ros::TopicManager::poll_manager_ [private]

Definition at line 232 of file topic_manager.h.

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

Definition at line 229 of file topic_manager.h.

Definition at line 230 of file topic_manager.h.

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

Definition at line 221 of file topic_manager.h.

L_Subscription ros::TopicManager::subscriptions_ [private]

Definition at line 222 of file topic_manager.h.

XMLRPCManagerPtr ros::TopicManager::xmlrpc_manager_ [private]

Definition at line 234 of file topic_manager.h.


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


roscpp
Author(s): Morgan Quigley mquigley@cs.stanford.edu, Josh Faust jfaust@willowgarage.com, Brian Gerkey gerkey@willowgarage.com, Troy Straszheim straszheim@willowgarage.com
autogenerated on Sat Dec 28 2013 17:35:53