src/service.cpp
Go to the documentation of this file.
1 // own class header first: https://stackoverflow.com/a/2762596/8224054
3 
4 #include <std_msgs/Int32.h>
5 #include <sstream>
6 #include <string>
7 
8 namespace ros1_ros_cpptemplate
9 {
12 
14  ros::NodeHandle& node_handle,
15  const std::string& service_topic_name)
16 {
17  int queue_size = 1;
18  bool latched = false;
19  service_ = node_handle.advertiseService("fibonacci_service", &Service::serve,
20  this);
21  atomic_fibonacci_ = atomic_fibonacci;
22 }
23 
25 {
26 }
27 
28 bool Service::serve(ros1_template_msgs::Answer::Request &request,
29  ros1_template_msgs::Answer::Response &response)
30 {
31  ROS_INFO_STREAM("Service called with question: " << request.question);
32 
33  std::stringstream log_prefix_string_stream;
34  log_prefix_string_stream << "Serving on " << service_.getService() << ": ";
35  std::string log_prefix = log_prefix_string_stream.str();
36 
37  int next_number = atomic_fibonacci_->nextAndLog(log_prefix);
38  response.answer = next_number;
39 
40  return true;
41 }
42 
43 } // namespace
std::shared_ptr< AtomicFibonacci > AtomicFibonacciPtr
ServiceServer advertiseService(const std::string &service, bool(T::*srv_func)(MReq &, MRes &), T *obj)
ros1_cpptemplate::AtomicFibonacciPtr atomic_fibonacci_
AtomicFibonacci supplier (shared)
Definition: service.hpp:53
std::string getService() const
ros::ServiceServer service_
Actual service.
Definition: service.hpp:56
#define ROS_INFO_STREAM(args)
virtual bool serve(ros1_template_msgs::Answer::Request &request, ros1_template_msgs::Answer::Response &response)
Definition: src/service.cpp:28


ros1_ros_cpptemplate
Author(s): Alexander Reimann
autogenerated on Sat Sep 2 2017 02:38:06