Manages an advertised service. More...
#include <service_publication.h>
Public Member Functions | |
void | addServiceClientLink (const ServiceClientLinkPtr &link) |
Adds a service link for us to manage. | |
void | drop () |
Terminate this service server. | |
const std::string & | getDataType () |
const std::string & | getMD5Sum () |
const std::string & | getName () |
const std::string & | getRequestDataType () |
const std::string & | getResponseDataType () |
bool | isDropped () |
Returns whether or not this service server is valid. | |
void | processRequest (boost::shared_array< uint8_t > buf, size_t num_bytes, const ServiceClientLinkPtr &link) |
Adds a request to the queue if our thread pool size is not 0, otherwise immediately calls the callback. | |
void | removeServiceClientLink (const ServiceClientLinkPtr &link) |
Removes a service link from our list. | |
ServicePublication (const std::string &name, const std::string &md5sum, const std::string &data_type, const std::string &request_data_type, const std::string &response_data_type, const ServiceCallbackHelperPtr &helper, CallbackQueueInterface *queue, const VoidConstPtr &tracked_object) | |
~ServicePublication () | |
Private Member Functions | |
void | dropAllConnections () |
Private Attributes | |
CallbackQueueInterface * | callback_queue_ |
V_ServiceClientLink | client_links_ |
boost::mutex | client_links_mutex_ |
std::string | data_type_ |
bool | dropped_ |
bool | has_tracked_object_ |
ServiceCallbackHelperPtr | helper_ |
std::string | md5sum_ |
std::string | name_ |
std::string | request_data_type_ |
std::string | response_data_type_ |
VoidConstWPtr | tracked_object_ |
Manages an advertised service.
ServicePublication manages all incoming service requests. If its thread pool size is not 0, it will queue the requests into a number of threads, calling the callback from within those threads. Otherwise it immediately calls the callback
Definition at line 61 of file service_publication.h.
ros::ServicePublication::ServicePublication | ( | const std::string & | name, | |
const std::string & | md5sum, | |||
const std::string & | data_type, | |||
const std::string & | request_data_type, | |||
const std::string & | response_data_type, | |||
const ServiceCallbackHelperPtr & | helper, | |||
CallbackQueueInterface * | queue, | |||
const VoidConstPtr & | tracked_object | |||
) |
Definition at line 45 of file service_publication.cpp.
ros::ServicePublication::~ServicePublication | ( | ) |
Definition at line 65 of file service_publication.cpp.
void ros::ServicePublication::addServiceClientLink | ( | const ServiceClientLinkPtr & | link | ) |
Adds a service link for us to manage.
Definition at line 152 of file service_publication.cpp.
void ros::ServicePublication::drop | ( | ) |
Terminate this service server.
Definition at line 70 of file service_publication.cpp.
void ros::ServicePublication::dropAllConnections | ( | ) | [private] |
Definition at line 170 of file service_publication.cpp.
const std::string& ros::ServicePublication::getDataType | ( | ) | [inline] |
Definition at line 95 of file service_publication.h.
const std::string& ros::ServicePublication::getMD5Sum | ( | ) | [inline] |
Definition at line 92 of file service_publication.h.
const std::string& ros::ServicePublication::getName | ( | ) | [inline] |
Definition at line 96 of file service_publication.h.
const std::string& ros::ServicePublication::getRequestDataType | ( | ) | [inline] |
Definition at line 93 of file service_publication.h.
const std::string& ros::ServicePublication::getResponseDataType | ( | ) | [inline] |
Definition at line 94 of file service_publication.h.
bool ros::ServicePublication::isDropped | ( | ) | [inline] |
Returns whether or not this service server is valid.
Definition at line 90 of file service_publication.h.
void ros::ServicePublication::processRequest | ( | boost::shared_array< uint8_t > | buf, | |
size_t | num_bytes, | |||
const ServiceClientLinkPtr & | link | |||
) |
Adds a request to the queue if our thread pool size is not 0, otherwise immediately calls the callback.
Definition at line 146 of file service_publication.cpp.
void ros::ServicePublication::removeServiceClientLink | ( | const ServiceClientLinkPtr & | link | ) |
Removes a service link from our list.
Definition at line 159 of file service_publication.cpp.
Definition at line 113 of file service_publication.h.
Definition at line 108 of file service_publication.h.
boost::mutex ros::ServicePublication::client_links_mutex_ [private] |
Definition at line 109 of file service_publication.h.
std::string ros::ServicePublication::data_type_ [private] |
Definition at line 103 of file service_publication.h.
bool ros::ServicePublication::dropped_ [private] |
Definition at line 111 of file service_publication.h.
bool ros::ServicePublication::has_tracked_object_ [private] |
Definition at line 114 of file service_publication.h.
Definition at line 106 of file service_publication.h.
std::string ros::ServicePublication::md5sum_ [private] |
Definition at line 102 of file service_publication.h.
std::string ros::ServicePublication::name_ [private] |
Definition at line 101 of file service_publication.h.
std::string ros::ServicePublication::request_data_type_ [private] |
Definition at line 104 of file service_publication.h.
std::string ros::ServicePublication::response_data_type_ [private] |
Definition at line 105 of file service_publication.h.
Definition at line 115 of file service_publication.h.