Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
ros::ServiceManager Class Reference

#include <service_manager.h>

Public Member Functions

bool advertiseService (const AdvertiseServiceOptions &ops)
 
ServiceServerLinkPtr createServiceServerLink (const std::string &service, bool persistent, const std::string &request_md5sum, const std::string &response_md5sum, const M_string &header_values)
 Create a new client to the specified service. If a client to that service already exists, returns the existing one. More...
 
bool lookupService (const std::string &name, std::string &serv_host, uint32_t &serv_port)
 Lookup the host/port of a service. More...
 
ServicePublicationPtr lookupServicePublication (const std::string &service)
 Lookup an advertised service. More...
 
void removeServiceServerLink (const ServiceServerLinkPtr &client)
 Remove the specified service client from our list. More...
 
 ServiceManager ()
 
void shutdown ()
 
void start ()
 
bool unadvertiseService (const std::string &serv_name)
 Unadvertise a service. More...
 
 ~ServiceManager ()
 

Static Public Member Functions

static const ServiceManagerPtrinstance ()
 

Private Member Functions

bool isServiceAdvertised (const std::string &serv_name)
 
bool isShuttingDown ()
 
bool unregisterService (const std::string &service)
 

Private Attributes

ConnectionManagerPtr connection_manager_
 
PollManagerPtr poll_manager_
 
L_ServicePublication service_publications_
 
boost::mutex service_publications_mutex_
 
L_ServiceServerLink service_server_links_
 
boost::mutex service_server_links_mutex_
 
volatile bool shutting_down_
 
boost::recursive_mutex shutting_down_mutex_
 
XMLRPCManagerPtr xmlrpc_manager_
 

Detailed Description

Definition at line 54 of file service_manager.h.

Constructor & Destructor Documentation

ros::ServiceManager::ServiceManager ( )

Definition at line 61 of file service_manager.cpp.

ros::ServiceManager::~ServiceManager ( )

Definition at line 66 of file service_manager.cpp.

Member Function Documentation

bool ros::ServiceManager::advertiseService ( const AdvertiseServiceOptions ops)

Definition at line 124 of file service_manager.cpp.

ServiceServerLinkPtr ros::ServiceManager::createServiceServerLink ( const std::string &  service,
bool  persistent,
const std::string &  request_md5sum,
const std::string &  response_md5sum,
const M_string header_values 
)

Create a new client to the specified service. If a client to that service already exists, returns the existing one.

Parameters
serviceThe service to connect to
persistentWhether to keep this connection alive for more than one service call
request_md5sumThe md5sum of the request message
response_md5sumThe md5sum of the response message
Returns
Shared pointer to the ServiceServerLink, empty shared pointer if none is found.

Definition at line 235 of file service_manager.cpp.

const ServiceManagerPtr & ros::ServiceManager::instance ( )
static

Definition at line 55 of file service_manager.cpp.

bool ros::ServiceManager::isServiceAdvertised ( const std::string &  serv_name)
private

Definition at line 206 of file service_manager.cpp.

bool ros::ServiceManager::isShuttingDown ( )
inlineprivate

Definition at line 127 of file service_manager.h.

bool ros::ServiceManager::lookupService ( const std::string &  name,
std::string &  serv_host,
uint32_t &  serv_port 
)

Lookup the host/port of a service.

Parameters
nameThe name of the service
serv_hostOUT – The host of the service
serv_portOUT – The port of the service

Definition at line 304 of file service_manager.cpp.

ServicePublicationPtr ros::ServiceManager::lookupServicePublication ( const std::string &  service)

Lookup an advertised service.

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

Parameters
serviceThe service name to look for.
Returns
Pointer to the matching ServicePublication, NULL if none is found.

Definition at line 219 of file service_manager.cpp.

void ros::ServiceManager::removeServiceServerLink ( const ServiceServerLinkPtr client)

Remove the specified service client from our list.

Parameters
clientThe client to remove

Definition at line 280 of file service_manager.cpp.

void ros::ServiceManager::shutdown ( )

Definition at line 81 of file service_manager.cpp.

void ros::ServiceManager::start ( )

Definition at line 71 of file service_manager.cpp.

bool ros::ServiceManager::unadvertiseService ( const std::string &  serv_name)

Unadvertise a service.

This call unadvertises a service, which must have been previously advertised, using advertiseService().

After this call completes, it is guaranteed that no further callbacks will be invoked for this service.

This method can be safely called from within a service callback.

Parameters
serv_nameThe service to be unadvertised.
Returns
true on successful unadvertisement, false otherwise.

Definition at line 158 of file service_manager.cpp.

bool ros::ServiceManager::unregisterService ( const std::string &  service)
private

Definition at line 193 of file service_manager.cpp.

Member Data Documentation

ConnectionManagerPtr ros::ServiceManager::connection_manager_
private

Definition at line 139 of file service_manager.h.

PollManagerPtr ros::ServiceManager::poll_manager_
private

Definition at line 138 of file service_manager.h.

L_ServicePublication ros::ServiceManager::service_publications_
private

Definition at line 129 of file service_manager.h.

boost::mutex ros::ServiceManager::service_publications_mutex_
private

Definition at line 130 of file service_manager.h.

L_ServiceServerLink ros::ServiceManager::service_server_links_
private

Definition at line 132 of file service_manager.h.

boost::mutex ros::ServiceManager::service_server_links_mutex_
private

Definition at line 133 of file service_manager.h.

volatile bool ros::ServiceManager::shutting_down_
private

Definition at line 135 of file service_manager.h.

boost::recursive_mutex ros::ServiceManager::shutting_down_mutex_
private

Definition at line 136 of file service_manager.h.

XMLRPCManagerPtr ros::ServiceManager::xmlrpc_manager_
private

Definition at line 140 of file service_manager.h.


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


roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim, Dirk Thomas
autogenerated on Mon Nov 2 2020 03:52:27