00001 #ifndef ros1_ros_cpp_template_PUBLISHER_HPP_ 00002 #define ros1_ros_cpp_template_PUBLISHER_HPP_ 00003 00004 #include <ros1_cpptemplate/atomic_fibonacci.hpp> 00005 00006 #include <ros/publisher.h> 00007 #include <ros/node_handle.h> 00008 00009 #include <memory> 00010 #include <string> 00011 00012 namespace ros1_ros_cpptemplate 00013 { 00014 00018 class Publisher 00019 { 00020 public: 00028 explicit Publisher(ros1_cpptemplate::AtomicFibonacciPtr atomic_fibonacci, 00029 ros::NodeHandle& node_handle, 00030 const std::string& output_topic_name); 00031 00035 virtual ~Publisher(); 00036 00040 virtual void publish(); 00041 00042 protected: 00046 Publisher() 00047 { 00048 } 00049 00051 ros1_cpptemplate::AtomicFibonacciPtr atomic_fibonacci_; 00052 00054 ros::Publisher publisher_; 00055 }; 00056 typedef std::shared_ptr<Publisher> PublisherPtr; 00057 00058 } // namespace 00059 00060 #endif