15 #ifndef RCLCPP__NODE_HPP_ 16 #define RCLCPP__NODE_HPP_ 19 #include <condition_variable> 31 #include "rcl_interfaces/msg/list_parameters_result.hpp" 32 #include "rcl_interfaces/msg/parameter_descriptor.hpp" 33 #include "rcl_interfaces/msg/parameter_event.hpp" 34 #include "rcl_interfaces/msg/set_parameters_result.hpp" 83 bool use_intra_process_comms =
false);
103 rclcpp::Context::SharedPtr context,
106 bool use_global_arguments =
true,
107 bool use_intra_process_comms =
false,
108 bool start_parameter_services =
true);
133 rclcpp::callback_group::CallbackGroup::SharedPtr
153 const std::string & topic_name,
size_t qos_history_depth,
196 CallbackT && callback,
198 rclcpp::callback_group::CallbackGroup::SharedPtr group =
nullptr,
199 bool ignore_local_publications =
false,
201 typename rclcpp::subscription_traits::has_message_type<CallbackT>::type, Alloc>::SharedPtr
202 msg_mem_strat =
nullptr,
225 typename rclcpp::subscription_traits::has_message_type<CallbackT>::type, Alloc>>
229 CallbackT && callback,
230 size_t qos_history_depth,
231 rclcpp::callback_group::CallbackGroup::SharedPtr group =
nullptr,
232 bool ignore_local_publications =
false,
234 typename rclcpp::subscription_traits::has_message_type<CallbackT>::type, Alloc>::SharedPtr
235 msg_mem_strat =
nullptr,
244 template<
typename DurationT = std::milli,
typename CallbackT>
249 rclcpp::callback_group::CallbackGroup::SharedPtr group =
nullptr);
252 template<
typename ServiceT>
257 rclcpp::callback_group::CallbackGroup::SharedPtr group =
nullptr);
260 template<
typename ServiceT,
typename CallbackT>
264 CallbackT && callback,
266 rclcpp::callback_group::CallbackGroup::SharedPtr group =
nullptr);
273 rcl_interfaces::msg::SetParametersResult
276 template<
typename ParameterT>
280 const ParameterT & value);
290 template<
typename MapValueT>
318 template<
typename ParameterT>
334 template<
typename MapValueT>
351 template<
typename ParameterT>
356 const ParameterT & alternative_value)
const;
369 template<
typename ParameterT>
374 const ParameterT & alternative_value);
385 rcl_interfaces::msg::ListParametersResult
394 template<
typename CallbackT>
424 rclcpp::Event::SharedPtr
438 rclcpp::Event::SharedPtr event,
442 rclcpp::Clock::SharedPtr
451 rclcpp::node_interfaces::NodeBaseInterface::SharedPtr
456 rclcpp::node_interfaces::NodeClockInterface::SharedPtr
461 rclcpp::node_interfaces::NodeGraphInterface::SharedPtr
466 rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr
471 rclcpp::node_interfaces::NodeTimersInterface::SharedPtr
476 rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr
481 rclcpp::node_interfaces::NodeServicesInterface::SharedPtr
486 rclcpp::node_interfaces::NodeWaitablesInterface::SharedPtr
491 rclcpp::node_interfaces::NodeParametersInterface::SharedPtr
496 rclcpp::node_interfaces::NodeTimeSourceInterface::SharedPtr
504 group_in_node(callback_group::CallbackGroup::SharedPtr group);
506 rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_base_;
507 rclcpp::node_interfaces::NodeGraphInterface::SharedPtr node_graph_;
508 rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr node_logging_;
509 rclcpp::node_interfaces::NodeTimersInterface::SharedPtr node_timers_;
510 rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr node_topics_;
511 rclcpp::node_interfaces::NodeServicesInterface::SharedPtr node_services_;
512 rclcpp::node_interfaces::NodeClockInterface::SharedPtr node_clock_;
513 rclcpp::node_interfaces::NodeParametersInterface::SharedPtr node_parameters_;
514 rclcpp::node_interfaces::NodeTimeSourceInterface::SharedPtr node_time_source_;
515 rclcpp::node_interfaces::NodeWaitablesInterface::SharedPtr node_waitables_;
517 bool use_intra_process_comms_;
522 #ifndef RCLCPP__NODE_IMPL_HPP_ 527 #endif // RCLCPP__NODE_HPP_
void register_param_change_callback(CallbackT &&callback)
Register the callback for parameter changes.
Definition: node_impl.hpp:208
rclcpp::node_interfaces::NodeServicesInterface::SharedPtr get_node_services_interface()
Return the Node's internal NodeServicesInterface implementation.
rclcpp::node_interfaces::NodeTimersInterface::SharedPtr get_node_timers_interface()
Return the Node's internal NodeTimersInterface implementation.
Definition: logger.hpp:77
Default allocation strategy for messages received by subscriptions.
Definition: message_memory_strategy.hpp:40
std::vector< uint8_t > get_parameter_types(const std::vector< std::string > &names) const
rclcpp::callback_group::CallbackGroup::SharedPtr create_callback_group(rclcpp::callback_group::CallbackGroupType group_type)
Create and return a callback group.
rclcpp::Client< ServiceT >::SharedPtr create_client(const std::string &service_name, const rmw_qos_profile_t &qos_profile=rmw_qos_profile_services_default, rclcpp::callback_group::CallbackGroup::SharedPtr group=nullptr)
#define RCLCPP_DISABLE_COPY(...)
Definition: macros.hpp:26
std::vector< rcl_interfaces::msg::ParameterDescriptor > describe_parameters(const std::vector< std::string > &names) const
rclcpp::node_interfaces::NodeBaseInterface::SharedPtr get_node_base_interface()
Return the Node's internal NodeBaseInterface implementation.
Structure to store an arbitrary parameter with templated get/set methods.
Definition: parameter.hpp:32
Definition: timer.hpp:192
rclcpp::Clock::SharedPtr get_clock()
std::vector< std::string > get_node_names() const
CallbackGroupType
Definition: callback_group.hpp:45
rclcpp::WallTimer< CallbackT >::SharedPtr create_wall_timer(std::chrono::duration< int64_t, DurationT > period, CallbackT callback, rclcpp::callback_group::CallbackGroup::SharedPtr group=nullptr)
Create a timer.
Definition: node_impl.hpp:156
size_t count_subscribers(const std::string &topic_name) const
Definition: allocator_common.hpp:24
rclcpp::Event::SharedPtr get_graph_event()
Return a graph event, which will be set anytime a graph change occurs.
Definition: service.hpp:88
Definition: client.hpp:119
void get_parameter_or_set(const std::string &name, ParameterT &value, const ParameterT &alternative_value)
Get the parameter value; if not set, set the "alternative value" and store it in the node...
Definition: node_impl.hpp:300
rclcpp::Logger get_logger() const
Get the logger of the node.
Subscription implementation, templated on the type of message this subscription receives.
Definition: subscription.hpp:148
rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr get_node_logging_interface()
Return the Node's internal NodeLoggingInterface implementation.
void set_parameters_if_not_set(const std::string &name, const std::map< std::string, MapValueT > &values)
Set a map of parameters with the same prefix.
Definition: node_impl.hpp:232
#define RCLCPP_SMART_PTR_DEFINITIONS(...)
Definition: macros.hpp:36
std::vector< rcl_interfaces::msg::SetParametersResult > set_parameters(const std::vector< rclcpp::Parameter > ¶meters)
Node(const std::string &node_name, const std::string &namespace_="", bool use_intra_process_comms=false)
Create a new node with the specified name.
A publisher publishes messages of any type to a topic.
Definition: publisher.hpp:155
rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr get_node_topics_interface()
Return the Node's internal NodeTopicsInterface implementation.
void set_parameter_if_not_set(const std::string &name, const ParameterT &value)
Definition: node_impl.hpp:215
#define RCLCPP_PUBLIC
Definition: visibility_control.hpp:50
size_t count_publishers(const std::string &topic_name) const
std::shared_ptr< PublisherT > create_publisher(const std::string &topic_name, size_t qos_history_depth, std::shared_ptr< Alloc > allocator=nullptr)
Create and return a Publisher.
Definition: node_impl.hpp:56
rclcpp::node_interfaces::NodeTimeSourceInterface::SharedPtr get_node_time_source_interface()
Return the Node's internal NodeParametersInterface implementation.
std::map< std::string, std::vector< std::string > > get_topic_names_and_types() const
rclcpp::node_interfaces::NodeClockInterface::SharedPtr get_node_clock_interface()
Return the Node's internal NodeClockInterface implementation.
rclcpp::node_interfaces::NodeGraphInterface::SharedPtr get_node_graph_interface()
Return the Node's internal NodeGraphInterface implementation.
rclcpp::node_interfaces::NodeParametersInterface::SharedPtr get_node_parameters_interface()
Return the Node's internal NodeParametersInterface implementation.
rclcpp::Parameter get_parameter(const std::string &name) const
rcl_interfaces::msg::SetParametersResult set_parameters_atomically(const std::vector< rclcpp::Parameter > ¶meters)
const char * get_name() const
Get the name of the node.
const char * get_namespace() const
Get the namespace of the node.
const std::vector< rclcpp::callback_group::CallbackGroup::WeakPtr > & get_callback_groups() const
Return the list of callback groups in the node.
std::vector< rclcpp::Parameter > get_parameters(const std::vector< std::string > &names) const
std::map< std::string, std::vector< std::string > > get_service_names_and_types() const
Node is the single point of entry for creating publishers and subscribers.
Definition: node.hpp:67
rcl_interfaces::msg::ListParametersResult list_parameters(const std::vector< std::string > &prefixes, uint64_t depth) const
void wait_for_graph_change(rclcpp::Event::SharedPtr event, std::chrono::nanoseconds timeout)
Wait for a graph event to occur by waiting on an Event to become set.
rclcpp::Service< ServiceT >::SharedPtr create_service(const std::string &service_name, CallbackT &&callback, const rmw_qos_profile_t &qos_profile=rmw_qos_profile_services_default, rclcpp::callback_group::CallbackGroup::SharedPtr group=nullptr)
Definition: node_impl.hpp:195
rclcpp::node_interfaces::NodeWaitablesInterface::SharedPtr get_node_waitables_interface()
Return the Node's internal NodeWaitablesInterface implementation.
std::shared_ptr< SubscriptionT > create_subscription(const std::string &topic_name, CallbackT &&callback, const rmw_qos_profile_t &qos_profile=rmw_qos_profile_default, rclcpp::callback_group::CallbackGroup::SharedPtr group=nullptr, bool ignore_local_publications=false, typename rclcpp::message_memory_strategy::MessageMemoryStrategy< typename rclcpp::subscription_traits::has_message_type< CallbackT >::type, Alloc >::SharedPtr msg_mem_strat=nullptr, std::shared_ptr< Alloc > allocator=nullptr)
Create and return a Subscription.
Definition: node_impl.hpp:91
bool get_parameter_or(const std::string &name, ParameterT &value, const ParameterT &alternative_value) const
Get the parameter value, or the "alternative value" if not set, and assign it to "value".
Definition: node_impl.hpp:286