publisher.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& output_topic_name)
16 {
17  int queue_size = 1;
18  bool latched = false;
19  publisher_ = node_handle.advertise<std_msgs::Int32>(output_topic_name, queue_size, latched);
20  atomic_fibonacci_ = atomic_fibonacci;
21 }
22 
24 {
25 }
26 
28 {
29  if (publisher_.getNumSubscribers() == 0)
30  {
31  ROS_INFO_STREAM("Nobody subscribed to " << publisher_.getTopic() << ", not publishing");
32  return;
33  }
34 
35  std::stringstream log_prefix_string_stream;
36  log_prefix_string_stream << "Publishing on " << publisher_.getTopic() << ": ";
37  std::string log_prefix = log_prefix_string_stream.str();
38 
39  int next_number = atomic_fibonacci_->nextAndLog(log_prefix);
40 
41  // Ptr to enable intraporcess publishing:
42  // http://wiki.ros.org/roscpp/Overview/Publishers%20and%20Subscribers#Intraprocess_Publishing
43  std_msgs::Int32Ptr number_msg(new std_msgs::Int32());
44  number_msg->data = next_number;
45  publisher_.publish(number_msg);
46 }
47 
48 } // namespace
std::shared_ptr< AtomicFibonacci > AtomicFibonacciPtr
void publish(const boost::shared_ptr< M > &message) const
ros::Publisher publisher_
Actual publisher.
Definition: publisher.hpp:54
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
uint32_t getNumSubscribers() const
#define ROS_INFO_STREAM(args)
ros1_cpptemplate::AtomicFibonacciPtr atomic_fibonacci_
AtomicFibonacci supplier (shared)
Definition: publisher.hpp:51
std::string getTopic() const


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