1 #ifndef _RAPID_ROS_SERVICE_CLIENT_H_
2 #define _RAPID_ROS_SERVICE_CLIENT_H_
8 template <
class Service>
12 virtual bool call(Service& srv) = 0;
13 virtual bool call(
typename Service::Request& req,
14 typename Service::Response& res) = 0;
18 template <
class Service>
22 virtual bool call(Service& srv);
23 virtual bool call(
typename Service::Request& req,
24 typename Service::Response& res);
28 ros::ServiceClient client_;
37 template <
class Service>
41 virtual bool call(Service& srv);
42 virtual bool call(
typename Service::Request& req,
43 typename Service::Response& res);
47 void set_response(
const typename Service::Response& response);
51 typename Service::Response response_;
56 template <
class Service>
60 template <
class Service>
62 return client_.call(srv);
65 template <
class Service>
67 typename Service::Response& res) {
68 return client_.call(req, res);
71 template <
class Service>
73 : success_(true), response_() {}
75 template <
class Service>
77 return call(srv.request, srv.response);
85 template <
class Service>
87 typename Service::Response& res) {
95 template <
class Service>
100 template <
class Service>
102 const typename Service::Response& response) {
103 response_ = response;
107 #endif // _RAPID_ROS_SERVICE_CLIENT_H_
void set_success(bool success)
virtual ~ServiceClientInterface()
virtual bool call(Service &srv)
virtual bool call(Service &srv)
void set_response(const typename Service::Response &response)
virtual bool call(Service &srv)=0