mteb/BrightProRoboticsRetrieval huggingface dataset:
entry for creating publishers and subscribers.") 's internal
NodeServicesInterface implementation. [ More...
](classrclcpp_1_1Node.html#a588cb7990fd658e58c532d65e4872df3)  
  
rclcpp::node_interfaces::NodeWaitablesInterface::SharedPtr  |  [
get_node_waitables_interface
](classrclcpp_1_1Node.html#a6708bb439e1d3bb1ea44fbae50e460b2) ()  
|  Return the [ Node ](classrclcpp_1_1Node.html "Node is the single point of
entry for creating publishers and subscribers.") 's internal
NodeWaitablesInterface implementation. [ More...
](classrclcpp_1_1Node.html#a6708bb439e1d3bb1ea44fbae50e460b2)  
  
rclcpp::node_interfaces::NodeParametersInterface::SharedPtr  |  [
get_node_parameters_interface
](classrclcpp_1_1Node.html#ab6272f2facdfb35f0ef9ce01ffedeec9) ()  
|  Return the [ Node ](classrclcpp_1_1Node.html "Node is the single point of
entry for creating publishers and subscribers.") 's internal
NodeParametersInterface implementation. [ More...
](classrclcpp_1_1Node.html#ab6272f2facdfb35f0ef9ce01ffedeec9)  
  
rclcpp::node_interfaces::NodeTimeSourceInterface::SharedPtr  |  [
get_node_time_source_interface
](classrclcpp_1_1Node.html#afa70b6e8bd3ecc39c5928d822024db39) ()  
|  Return the [ Node ](classrclcpp_1_1Node.html "Node is the single point of
entry for creating publishers and subscribers.") 's internal
NodeTimeSourceInterface implementation. [ More...
](classrclcpp_1_1Node.html#afa70b6e8bd3ecc39c5928d822024db39)  
  
const [ std::string
](http://en.cppreference.com/w/cpp/string/basic_string.html) & |  [
get_sub_namespace
](classrclcpp_1_1Node.html#aa9ac5055f3f7a3537642482bd505d4bd) () const  
|  Return the sub-namespace, if this is a sub-node, otherwise an empty string.
[ More... ](classrclcpp_1_1Node.html#aa9ac5055f3f7a3537642482bd505d4bd)  
  
const [ std::string
](http://en.cppreference.com/w/cpp/string/basic_string.html) & |  [
get_effective_namespace
](classrclcpp_1_1Node.html#afe4790bba38942b795d24b6ccb3e9c5a) () const  
|  Return the effective namespace that is used when creating entities. [
##  Public Member Functions  
  
---  
virtual [ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) |  [
~ServerBase
](classrclcpp__action_1_1ServerBase.html#aa9227b03f2895a5b5aa6fe7c24a7e58e) ()  
[ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) size_t  |
[ get_number_of_ready_subscriptions
](classrclcpp__action_1_1ServerBase.html#a20cc467667673d0e524197b55a1656c4) ()
override  
[ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) size_t  |
[ get_number_of_ready_timers
](classrclcpp__action_1_1ServerBase.html#a2ecbd86d39f77b73d9b6d50834d80785) ()
override  
[ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) size_t  |
[ get_number_of_ready_clients
](classrclcpp__action_1_1ServerBase.html#a5fd4dc4cfc526f059ebfe3a1b75cd3db) ()
override  
[ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) size_t  |
[ get_number_of_ready_services
](classrclcpp__action_1_1ServerBase.html#ac2e3b8f4c412af9746f974a1978a09bb) ()
override  
[ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) size_t  |
[ get_number_of_ready_guard_conditions
](classrclcpp__action_1_1ServerBase.html#a8a24a8a7791b23b72d6b619c84155e1d) ()
override  
[ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) bool  |  [
add_to_wait_set
](classrclcpp__action_1_1ServerBase.html#aed44420d3fc12ec1deed676cd216b29f) (
[ rcl_wait_set_t
](http://docs.ros2.org/foxy/api/rcl/structrcl__wait__set__t.html) *wait_set)
override  
[ RCLCPP_ACTION_PUBLIC
|  Get the namespace of the node. [ More...
](classrclcpp_1_1Node.html#a7be04e55e2934e05df992b188d9dce6d)  
  
const char *  |  [ get_fully_qualified_name
](classrclcpp_1_1Node.html#a57f81aa79665cd9d16a591bddf762747) () const  
|  Get the fully-qualified name of the node. [ More...
](classrclcpp_1_1Node.html#a57f81aa79665cd9d16a591bddf762747)  
  
[ rclcpp::Logger ](classrclcpp_1_1Logger.html) |  [ get_logger
](classrclcpp_1_1Node.html#a884ebededa2125cb8316998852ca3fc5) () const  
|  Get the logger of the node. [ More...
](classrclcpp_1_1Node.html#a884ebededa2125cb8316998852ca3fc5)  
  
rclcpp::CallbackGroup::SharedPtr  |  [ create_callback_group
](classrclcpp_1_1Node.html#a90010521bef69072ec5008adddaf10a2) ( [
rclcpp::CallbackGroupType
](namespacerclcpp.html#a0027d5804ef28f0b6fea8eea4195c44a) group_type)  
|  Create and return a callback group. [ More...
](classrclcpp_1_1Node.html#a90010521bef69072ec5008adddaf10a2)  
  
const [ std::vector ](http://en.cppreference.com/w/cpp/container/vector.html)
< rclcpp::CallbackGroup::WeakPtr > & |  [ get_callback_groups
](classrclcpp_1_1Node.html#a90c0277b37f573e025853aea9a30b64f) () const  
|  Return the list of callback groups in the node. [ More...
](classrclcpp_1_1Node.html#a90c0277b37f573e025853aea9a30b64f)  
  
template<typename MessageT , typename AllocatorT = std::allocator<void>,
typename PublisherT = rclcpp::Publisher<MessageT, AllocatorT>>  
[ std::shared_ptr ](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) <
PublisherT > |  [ create_publisher
](classrclcpp_1_1Node.html#ad1dfc9d04d67ab93353e04a7df72bc9a) (const [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html)
&topic_name, const [ rclcpp::QoS ](classrclcpp_1_1QoS.html) &qos, const [
PublisherOptionsWithAllocator
](structrclcpp_1_1PublisherOptionsWithAllocator.html) < AllocatorT > &options=
[ PublisherOptionsWithAllocator
](structrclcpp_1_1PublisherOptionsWithAllocator.html) < AllocatorT >())  
|  Create and return a [ Publisher ](classrclcpp_1_1Publisher.html "A
publisher publishes messages of any type to a topic.") . [ More...
](classrclcpp_1_1Node.html#ad1dfc9d04d67ab93353e04a7df72bc9a)
/**
   * \param[in] cancel_callback Optional callback that is called when the response is received.
   *   The callback takes one parameter: a shared pointer to the CancelResponse message.
   * \return A future to a CancelResponse message that is set when the request has been
   * acknowledged by an action server.
   * See
   * <a href="https://github.com/ros2/rcl_interfaces/blob/master/action_msgs/srv/CancelGoal.srv">
   * action_msgs/CancelGoal.srv</a>.
   */
  std::shared_future<typename CancelResponse::SharedPtr>
  async_cancel_all_goals(CancelCallback cancel_callback = nullptr)
  {
    auto cancel_request = std::make_shared<CancelRequest>();
    // std::fill(cancel_request->goal_info.goal_id.uuid, 0u);
    std::fill(
      cancel_request->goal_info.goal_id.uuid.begin(),
      cancel_request->goal_info.goal_id.uuid.end(), 0u);
    return async_cancel(cancel_request, cancel_callback);
  }
  /// Asynchronously request all goals at or before a specified time be canceled.
  /**
   * \param[in] stamp The timestamp for the cancel goal request.
   * \param[in] cancel_callback Optional callback that is called when the response is received.
   *   The callback takes one parameter: a shared pointer to the CancelResponse message.
   * \return A future to a CancelResponse message that is set when the request has been
   * acknowledged by an action server.
   * See
   * <a href="https://github.com/ros2/rcl_interfaces/blob/master/action_msgs/srv/CancelGoal.srv">
   * action_msgs/CancelGoal.srv</a>.
   */
  std::shared_future<typename CancelResponse::SharedPtr>
  async_cancel_goals_before(
    const rclcpp::Time & stamp,
    CancelCallback cancel_callback = nullptr)
  {
    auto cancel_request = std::make_shared<CancelRequest>();
    // std::fill(cancel_request->goal_info.goal_id.uuid, 0u);
    std::fill(
      cancel_request->goal_info.goal_id.uuid.begin(),
      cancel_request->goal_info.goal_id.uuid.end(), 0u);
More... ](classrclcpp_1_1Node.html#afe4790bba38942b795d24b6ccb3e9c5a)  
  
rclcpp::Node::SharedPtr  |  [ create_sub_node
](classrclcpp_1_1Node.html#a1df8e4507d17a503630317432449d69d) (const [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html)
&sub_namespace)  
|  Create a sub-node, which will extend the namespace of all entities created
with it. [ More...
](classrclcpp_1_1Node.html#a1df8e4507d17a503630317432449d69d)  
  
const [ rclcpp::NodeOptions ](classrclcpp_1_1NodeOptions.html) & |  [
get_node_options ](classrclcpp_1_1Node.html#a53b6a37589d4371c9e0675acfc0f197a)
() const  
|  Return the [ NodeOptions ](classrclcpp_1_1NodeOptions.html "Encapsulation
of options for node initialization.") used when creating this node. [ More...
](classrclcpp_1_1Node.html#a53b6a37589d4371c9e0675acfc0f197a)  
  
template<typename ServiceT >  
[ Client ](classrclcpp_1_1Client.html) < ServiceT >::SharedPtr  |  [
create_client ](classrclcpp_1_1Node.html#ac9aed5a03eb2420254745528a7d20443)
(const [ std::string
](http://en.cppreference.com/w/cpp/string/basic_string.html) &service_name,
const [ rmw_qos_profile_t
](http://docs.ros2.org/foxy/api/rmw/structrmw__qos__profile__t.html)
&qos_profile, rclcpp::CallbackGroup::SharedPtr group)  
![-](closed.png) Public Member Functions inherited from [
std::enable_shared_from_this< Node >
](http://en.cppreference.com/w/cpp/memory/enable_shared_from_this.html)  
T  |  [ enable_shared_from_this
](http://en.cppreference.com/w/cpp/memory/enable_shared_from_this/enable_shared_from_this.html)
(T... args)  
T  |  [ operator=
](http://en.cppreference.com/w/cpp/memory/enable_shared_from_this/operator=.html)
(T... args)  
T  |  [ shared_from_this
](http://en.cppreference.com/w/cpp/memory/enable_shared_from_this/shared_from_this.html)
(T... args)  
T  |  [ ~enable_shared_from_this
](http://en.cppreference.com/w/cpp/memory/enable_shared_from_this/~enable_shared_from_this.html)
(T... args)
](namespacerclcpp__action.html#ababbbebf29fec7c541687c724fc82ba7) , [
std::shared_ptr ](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) <
void > > |  [ call_handle_goal_callback
](classrclcpp__action_1_1ServerBase.html#a7cc2bbdc20cd5c86041992be0da32a11) (
[ GoalUUID ](namespacerclcpp__action.html#a67daf44a45003173e42ccc612fcb052b)
&, [ std::shared_ptr
](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) < void > request)=0  
virtual [ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) [
CancelResponse
](namespacerclcpp__action.html#a27ea2386548de7ad3bef27bb3c0eed05) |  [
call_handle_cancel_callback
](classrclcpp__action_1_1ServerBase.html#a0b63ea292214103e05139de594d4f310)
(const [ GoalUUID
](namespacerclcpp__action.html#a67daf44a45003173e42ccc612fcb052b) &uuid)=0  
virtual [ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) [ GoalUUID
](namespacerclcpp__action.html#a67daf44a45003173e42ccc612fcb052b) |  [
get_goal_id_from_goal_request
](classrclcpp__action_1_1ServerBase.html#a0ab6c2b8eb1f794d0b6aa87a224551cd)
(void *message)=0  
virtual [ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) [
std::shared_ptr ](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) <
void > |  [ create_goal_request
](classrclcpp__action_1_1ServerBase.html#a59498822f73d618624c7ec1e191aedfe)
()=0  
virtual [ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) void  |  [
call_goal_accepted_callback
](classrclcpp__action_1_1ServerBase.html#ac6295e5eac92fd58c9e29486d8631e41) (
[ std::shared_ptr ](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) <
[ rcl_action_goal_handle_t
](http://docs.ros2.org/foxy/api/rcl_action/structrcl__action__goal__handle__t.html)
> rcl_goal_handle, [ GoalUUID
](namespacerclcpp__action.html#a67daf44a45003173e42ccc612fcb052b) uuid, [
std::shared_ptr ](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) <
void > goal_request_message)=0  
virtual [ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) [ GoalUUID
](namespacerclcpp__action.html#a67daf44a45003173e42ccc612fcb052b) |  [
get_goal_id_from_result_request
](classrclcpp__action_1_1ServerBase.html#ac4074115e5b5967f509c20a0b09b2647)
(void *message)=0  
virtual [ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) [
std::shared_ptr ](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) <
void > |  [ create_result_request
](classrclcpp__action_1_1ServerBase.html#ad4fdf05782782e3ea01e8aafd6b9eccd)
()=0  
virtual [ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) [
std::shared_ptr ](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) <
void > |  [ create_result_response
](classrclcpp__action_1_1ServerBase.html#a89f2f956eb78af2bfeb695da330f888b)
(decltype(action_msgs::msg::GoalStatus::status) status)=0  
[ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) void  |  [
publish_status
](classrclcpp__action_1_1ServerBase.html#af9042363e4f33c4625ded77338156051) ()  
[ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) void  |  [
notify_goal_terminal_state
](classrclcpp__action_1_1ServerBase.html#a7cd4e92510a60af5a52f01012e293045) ()  
[ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) void  |  [
publish_result
](classrclcpp__action_1_1ServerBase.html#a9fa920a4b8383bb48bd0ba2995609813)
(const [ GoalUUID
](namespacerclcpp__action.html#a67daf44a45003173e42ccc612fcb052b) &uuid, [
std::shared_ptr ](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) <
void > result_msg)  
[ RCLCPP_ACTION_PUBLIC
](visibility__control_8hpp.html#a736fe60d4de4417a213ed34ba1926048) void  |  [
publish_feedback
](classrclcpp__action_1_1ServerBase.html#ae29a00ddaf7e45fdf8ca1585b71b7a66) (
[ std::shared_ptr ](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) <
void > feedback_msg)  
  
##  Detailed Description
* [ Quality guide: ensuring code quality ](../../The-ROS2-Project/Contributing/Quality-Guide.html)
      * [ ROS Build Farms ](../../The-ROS2-Project/Contributing/Build-Farms.html)
      * [ Windows Tips and Tricks ](../../The-ROS2-Project/Contributing/Windows-Tips-and-Tricks.html)
      * [ Contributing to ROS 2 Documentation ](../../The-ROS2-Project/Contributing/Contributing-To-ROS-2-Documentation.html)
    * [ Features Status ](../../The-ROS2-Project/Features.html)
    * [ Feature Ideas ](../../The-ROS2-Project/Feature-Ideas.html)
    * [ Roadmap ](../../The-ROS2-Project/Roadmap.html)
    * [ ROSCon Talks ](../../The-ROS2-Project/ROSCon-Content.html)
    * [ Project Governance ](../../The-ROS2-Project/Governance.html)
      * [ ROS 2 Technical Steering Committee Charter ](../../The-ROS2-Project/Governance/ROS2-TSC-Charter.html)
      * [ ROS 2 TSC applicant intake process ](../../The-ROS2-Project/Governance/ROS2-TSC-Intake-process.html)
      * [ About Working Groups ](../../The-ROS2-Project/Governance/Working-Groups.html)
      * [ How to Start a Community Working Group ](../../The-ROS2-Project/Governance/How-To-Start-A-Community-Working-Group.html)
    * [ Marketing ](../../The-ROS2-Project/Marketing.html)
    * [ Metrics ](../../The-ROS2-Project/Metrics.html)
  * [ API Documentation ](../../API-Docs.html)
  * [ Related Projects ](../../Related-Projects.html)
    * [ Intel ROS 2 Projects ](../../Related-Projects/Intel-ROS2-Projects.html)
    * [ NVIDIA ROS 2 Projects ](../../Related-Projects/Nvidia-ROS2-Projects.html)
  * [ Glossary ](../../Glossary.html)
  * [ Citations ](../../Citations.html)

__ [ ROS 2 Documentation: Rolling ](../../index.html)

  * [ ](../../index.html)
  * [ Tutorials ](../../Tutorials.html)
  * [ Beginner: Client libraries ](../Beginner-Client-Libraries.html)
  * Writing a simple service and client (C++) 
  * [ Edit on GitHub ](https://github.com/ros2/ros2_documentation/blob/rolling/source/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Cpp-Service-And-Client.rst)

* * *

**You're reading the documentation for a development version. For the latest
released version, please have a look at[ Iron
](../../../iron/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Cpp-
Service-And-Client.html) . **

#  Writing a simple service and client (C++)  ï

**Goal:** Create and run service and client nodes using C++.
template<typename MessageT , typename CallbackT , typename AllocatorT =
std::allocator<void>, typename CallbackMessageT = typename
rclcpp::subscription_traits::has_message_type<CallbackT>::type, typename
SubscriptionT = rclcpp::Subscription<CallbackMessageT, AllocatorT>, typename
MessageMemoryStrategyT =
rclcpp::message_memory_strategy::MessageMemoryStrategy< CallbackMessageT,
AllocatorT >>  
[ std::shared_ptr ](http://en.cppreference.com/w/cpp/memory/shared_ptr.html) <
SubscriptionT > |  [ create_subscription
](classrclcpp_1_1Node.html#a82f97ad29e3d54c91f6ef3265a8636d1) (const [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html)
&topic_name, const [ rclcpp::QoS ](classrclcpp_1_1QoS.html) &qos, CallbackT
&&callback, const [ SubscriptionOptionsWithAllocator
](structrclcpp_1_1SubscriptionOptionsWithAllocator.html) < AllocatorT >
&options= [ SubscriptionOptionsWithAllocator
](structrclcpp_1_1SubscriptionOptionsWithAllocator.html) < AllocatorT >(),
typename MessageMemoryStrategyT::SharedPtr
msg_mem_strat=(MessageMemoryStrategyT::create_default()))  
|  Create and return a [ Subscription ](classrclcpp_1_1Subscription.html
"Subscription implementation, templated on the type of message this
subscription receives.") . [ More...
](classrclcpp_1_1Node.html#a82f97ad29e3d54c91f6ef3265a8636d1)  
  
template<typename DurationRepT = int64_t, typename DurationT = std::milli,
typename CallbackT >  
[ rclcpp::WallTimer ](classrclcpp_1_1WallTimer.html) < CallbackT >::SharedPtr
|  [ create_wall_timer
](classrclcpp_1_1Node.html#ad27d1f6d1c5ff633b1b42ab6f77479c5) ( [
std::chrono::duration ](http://en.cppreference.com/w/cpp/chrono/duration.html)
< DurationRepT, DurationT > period, CallbackT callback,
rclcpp::CallbackGroup::SharedPtr group=nullptr)  
|  Create a timer. [ More...
](classrclcpp_1_1Node.html#ad27d1f6d1c5ff633b1b42ab6f77479c5)  
  
template<typename ServiceT >  
[ rclcpp::Client ](classrclcpp_1_1Client.html) < ServiceT >::SharedPtr  |  [
create_client ](classrclcpp_1_1Node.html#aed42f345ae1de3a1979d5a8076127199)
(const [ std::string
](http://en.cppreference.com/w/cpp/string/basic_string.html) &service_name,
[ std::vector ](http://en.cppreference.com/w/cpp/container/vector.html) <
rcl_interfaces::msg::ParameterDescriptor > |  [ describe_parameters
](classrclcpp_1_1Node.html#adbfb47c0983e14482c39159b274f6308) (const [
std::vector ](http://en.cppreference.com/w/cpp/container/vector.html) < [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html) >
&names) const  
|  Return a vector of parameter descriptors, one for each of the given names.
[ More... ](classrclcpp_1_1Node.html#adbfb47c0983e14482c39159b274f6308)  
  
[ std::vector ](http://en.cppreference.com/w/cpp/container/vector.html) <
uint8_t > |  [ get_parameter_types
](classrclcpp_1_1Node.html#af9855812e7873bd35b28afa420d4242b) (const [
std::vector ](http://en.cppreference.com/w/cpp/container/vector.html) < [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html) >
&names) const  
|  Return a vector of parameter types, one for each of the given names. [
More... ](classrclcpp_1_1Node.html#af9855812e7873bd35b28afa420d4242b)  
  
rcl_interfaces::msg::ListParametersResult  |  [ list_parameters
](classrclcpp_1_1Node.html#a37aa95886a706c174db77c2b160f6d7d) (const [
std::vector ](http://en.cppreference.com/w/cpp/container/vector.html) < [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html) >
&prefixes, uint64_t depth) const  
|  Return a list of parameters with any of the given prefixes, up to the given
depth. [ More... ](classrclcpp_1_1Node.html#a37aa95886a706c174db77c2b160f6d7d)  
  
[ RCUTILS_WARN_UNUSED
](http://docs.ros2.org/foxy/api/rcutils/macros_8h.html#a6be4031432c70fddf878bd574c8bccc4)
OnSetParametersCallbackHandle::SharedPtr  |  [ add_on_set_parameters_callback
](classrclcpp_1_1Node.html#a12d535bced9f26b65c0a450e6f40aff8) ( [
OnParametersSetCallbackType
](classrclcpp_1_1Node.html#ab403fecdb5ec2eb9f88e3eb7ae6f6d0c) callback)  
|  Add a callback for when parameters are being set. [ More...
](classrclcpp_1_1Node.html#a12d535bced9f26b65c0a450e6f40aff8)  
  
void  |  [ remove_on_set_parameters_callback
](classrclcpp_1_1Node.html#a15d4f7fa0ef760941b6a78f42cccb7e0) (const [
OnSetParametersCallbackHandle
](classrclcpp_1_1Node.html#aac7e1fe50bc2683380cd9a635ac51edb) *const handler)  
|  Remove a callback registered with ` add_on_set_parameters_callback ` . [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html)
&name, ParameterT &parameter) const  
|  Get the value of a parameter by the given name, and return true if it was
set. [ More... ](classrclcpp_1_1Node.html#a3158e5520c58531ae4d85a2e98cdf210)  
  
template<typename ParameterT >  
bool  |  [ get_parameter_or
](classrclcpp_1_1Node.html#a4bba086f9d74de0f1f10ffb8deb4c11a) (const [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html)
&name, ParameterT &parameter, const ParameterT &alternative_value) const  
|  Get the parameter value, or the "alternative_value" if not set, and assign
it to "parameter". [ More...
](classrclcpp_1_1Node.html#a4bba086f9d74de0f1f10ffb8deb4c11a)  
  
[ std::vector ](http://en.cppreference.com/w/cpp/container/vector.html) < [
rclcpp::Parameter ](classrclcpp_1_1Parameter.html) > |  [ get_parameters
](classrclcpp_1_1Node.html#a25890d01a2cd47ce99af887f556c529b) (const [
std::vector ](http://en.cppreference.com/w/cpp/container/vector.html) < [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html) >
&names) const  
|  Return the parameters by the given parameter names. [ More...
](classrclcpp_1_1Node.html#a25890d01a2cd47ce99af887f556c529b)  
  
template<typename ParameterT >  
bool  |  [ get_parameters
](classrclcpp_1_1Node.html#ae5ab12777100f65bd09163814dbbf486) (const [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html)
&prefix, [ std::map ](http://en.cppreference.com/w/cpp/container/map.html) < [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html) ,
ParameterT > &values) const  
|  Get the parameter values for all parameters that have a given prefix. [
More... ](classrclcpp_1_1Node.html#ae5ab12777100f65bd09163814dbbf486)  
  
rcl_interfaces::msg::ParameterDescriptor  |  [ describe_parameter
](classrclcpp_1_1Node.html#a39de814a51b5792e86cd9b315e631fe0) (const [
std::string ](http://en.cppreference.com/w/cpp/string/basic_string.html)
&name) const  
|  Return the parameter descriptor for the given parameter name. [ More...
](classrclcpp_1_1Node.html#a39de814a51b5792e86cd9b315e631fe0)