diff --git a/rclcpp/include/rclcpp/publisher.hpp b/rclcpp/include/rclcpp/publisher.hpp index 316b7ab..62d76bf 100644 --- a/rclcpp/include/rclcpp/publisher.hpp +++ b/rclcpp/include/rclcpp/publisher.hpp @@ -261,6 +261,15 @@ public: return this->publish(unique_msg); } + virtual void + publish(const MessageT * msg) + { + if (!msg) { + throw std::runtime_error("msg argument is nullptr"); + } + return this->publish(*msg); + } + std::shared_ptr get_allocator() const { return message_allocator_; diff --git a/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_publisher.hpp b/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_publisher.hpp index c01ad98..61d0c6b 100644 --- a/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_publisher.hpp +++ b/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_publisher.hpp @@ -125,6 +125,15 @@ public: rclcpp::publisher::Publisher::publish(msg); } + virtual void + publish(const MessageT * msg) + { + if (!msg) { + throw std::runtime_error("msg argument is nullptr"); + } + this->publish(*msg); + } + /// LifecyclePublisher pulish function /** * The publish function checks whether the communication