remove features and related code which were deprecated in dashing (#852)
Signed-off-by: William Woodall <william@osrfoundation.org>
This commit is contained in:
parent
dfb144d3cb
commit
89119c6422
19 changed files with 3 additions and 1051 deletions
|
@ -462,17 +462,6 @@ if(BUILD_TESTING)
|
||||||
"rcl")
|
"rcl")
|
||||||
target_link_libraries(test_multi_threaded_executor ${PROJECT_NAME})
|
target_link_libraries(test_multi_threaded_executor ${PROJECT_NAME})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ament_add_gtest(test_local_parameters test/test_local_parameters.cpp)
|
|
||||||
if(TARGET test_local_parameters)
|
|
||||||
ament_target_dependencies(test_local_parameters
|
|
||||||
"rcl_interfaces"
|
|
||||||
"rmw"
|
|
||||||
"rosidl_generator_cpp"
|
|
||||||
"rosidl_typesupport_cpp"
|
|
||||||
)
|
|
||||||
target_link_libraries(test_local_parameters ${PROJECT_NAME})
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ament_package()
|
ament_package()
|
||||||
|
|
|
@ -29,36 +29,6 @@
|
||||||
namespace rclcpp
|
namespace rclcpp
|
||||||
{
|
{
|
||||||
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename AllocatorT = std::allocator<void>,
|
|
||||||
typename PublisherT = ::rclcpp::Publisher<MessageT, AllocatorT>>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use alternative rclcpp::create_publisher() signatures")]]
|
|
||||||
std::shared_ptr<PublisherT>
|
|
||||||
create_publisher(
|
|
||||||
rclcpp::node_interfaces::NodeTopicsInterface * node_topics,
|
|
||||||
const std::string & topic_name,
|
|
||||||
const rmw_qos_profile_t & qos_profile,
|
|
||||||
const PublisherEventCallbacks & event_callbacks,
|
|
||||||
rclcpp::callback_group::CallbackGroup::SharedPtr group,
|
|
||||||
bool use_intra_process_comms,
|
|
||||||
std::shared_ptr<AllocatorT> allocator)
|
|
||||||
{
|
|
||||||
auto publisher_options = rcl_publisher_get_default_options();
|
|
||||||
publisher_options.qos = qos_profile;
|
|
||||||
|
|
||||||
auto pub = node_topics->create_publisher(
|
|
||||||
topic_name,
|
|
||||||
rclcpp::create_publisher_factory<MessageT, AllocatorT, PublisherT>(event_callbacks, allocator),
|
|
||||||
publisher_options,
|
|
||||||
use_intra_process_comms);
|
|
||||||
|
|
||||||
node_topics->add_publisher(pub, group);
|
|
||||||
|
|
||||||
return std::dynamic_pointer_cast<PublisherT>(pub);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Create and return a publisher of the given MessageT type.
|
/// Create and return a publisher of the given MessageT type.
|
||||||
/**
|
/**
|
||||||
* The NodeT type only needs to have a method called get_node_topics_interface()
|
* The NodeT type only needs to have a method called get_node_topics_interface()
|
||||||
|
|
|
@ -29,49 +29,6 @@
|
||||||
namespace rclcpp
|
namespace rclcpp
|
||||||
{
|
{
|
||||||
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename CallbackT,
|
|
||||||
typename AllocatorT,
|
|
||||||
typename CallbackMessageT,
|
|
||||||
typename SubscriptionT = rclcpp::Subscription<CallbackMessageT, AllocatorT>>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use alternative rclcpp::create_subscription() signatures")]]
|
|
||||||
typename std::shared_ptr<SubscriptionT>
|
|
||||||
create_subscription(
|
|
||||||
rclcpp::node_interfaces::NodeTopicsInterface * node_topics,
|
|
||||||
const std::string & topic_name,
|
|
||||||
CallbackT && callback,
|
|
||||||
const rmw_qos_profile_t & qos_profile,
|
|
||||||
const SubscriptionEventCallbacks & event_callbacks,
|
|
||||||
rclcpp::callback_group::CallbackGroup::SharedPtr group,
|
|
||||||
bool ignore_local_publications,
|
|
||||||
bool use_intra_process_comms,
|
|
||||||
typename rclcpp::message_memory_strategy::MessageMemoryStrategy<
|
|
||||||
CallbackMessageT, AllocatorT>::SharedPtr
|
|
||||||
msg_mem_strat,
|
|
||||||
typename std::shared_ptr<AllocatorT> allocator)
|
|
||||||
{
|
|
||||||
auto subscription_options = rcl_subscription_get_default_options();
|
|
||||||
subscription_options.qos = qos_profile;
|
|
||||||
subscription_options.ignore_local_publications = ignore_local_publications;
|
|
||||||
|
|
||||||
auto factory = rclcpp::create_subscription_factory
|
|
||||||
<MessageT, CallbackT, AllocatorT, CallbackMessageT, SubscriptionT>(
|
|
||||||
std::forward<CallbackT>(callback),
|
|
||||||
event_callbacks,
|
|
||||||
msg_mem_strat,
|
|
||||||
allocator);
|
|
||||||
|
|
||||||
auto sub = node_topics->create_subscription(
|
|
||||||
topic_name,
|
|
||||||
factory,
|
|
||||||
subscription_options,
|
|
||||||
use_intra_process_comms);
|
|
||||||
node_topics->add_subscription(sub, group);
|
|
||||||
return std::dynamic_pointer_cast<SubscriptionT>(sub);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Create and return a subscription of the given MessageT type.
|
/// Create and return a subscription of the given MessageT type.
|
||||||
/**
|
/**
|
||||||
* The NodeT type only needs to have a method called get_node_topics_interface()
|
* The NodeT type only needs to have a method called get_node_topics_interface()
|
||||||
|
|
|
@ -174,7 +174,7 @@ public:
|
||||||
template<
|
template<
|
||||||
typename MessageT,
|
typename MessageT,
|
||||||
typename AllocatorT = std::allocator<void>,
|
typename AllocatorT = std::allocator<void>,
|
||||||
typename PublisherT = ::rclcpp::Publisher<MessageT, AllocatorT>>
|
typename PublisherT = rclcpp::Publisher<MessageT, AllocatorT>>
|
||||||
std::shared_ptr<PublisherT>
|
std::shared_ptr<PublisherT>
|
||||||
create_publisher(
|
create_publisher(
|
||||||
const std::string & topic_name,
|
const std::string & topic_name,
|
||||||
|
@ -183,44 +183,6 @@ public:
|
||||||
PublisherOptionsWithAllocator<AllocatorT>()
|
PublisherOptionsWithAllocator<AllocatorT>()
|
||||||
);
|
);
|
||||||
|
|
||||||
/// Create and return a Publisher.
|
|
||||||
/**
|
|
||||||
* \param[in] topic_name The topic for this publisher to publish on.
|
|
||||||
* \param[in] qos_history_depth The depth of the publisher message queue.
|
|
||||||
* \param[in] allocator Custom allocator.
|
|
||||||
* \return Shared pointer to the created publisher.
|
|
||||||
*/
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename AllocatorT = std::allocator<void>,
|
|
||||||
typename PublisherT = ::rclcpp::Publisher<MessageT, AllocatorT>>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use create_publisher(const std::string &, const rclcpp::QoS &, ...) instead")]]
|
|
||||||
std::shared_ptr<PublisherT>
|
|
||||||
create_publisher(
|
|
||||||
const std::string & topic_name,
|
|
||||||
size_t qos_history_depth,
|
|
||||||
std::shared_ptr<AllocatorT> allocator);
|
|
||||||
|
|
||||||
/// Create and return a Publisher.
|
|
||||||
/**
|
|
||||||
* \param[in] topic_name The topic for this publisher to publish on.
|
|
||||||
* \param[in] qos_profile The quality of service profile to pass on to the rmw implementation.
|
|
||||||
* \param[in] allocator Optional custom allocator.
|
|
||||||
* \return Shared pointer to the created publisher.
|
|
||||||
*/
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename AllocatorT = std::allocator<void>,
|
|
||||||
typename PublisherT = ::rclcpp::Publisher<MessageT, AllocatorT>>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use create_publisher(const std::string &, const rclcpp::QoS &, ...) instead")]]
|
|
||||||
std::shared_ptr<PublisherT>
|
|
||||||
create_publisher(
|
|
||||||
const std::string & topic_name,
|
|
||||||
const rmw_qos_profile_t & qos_profile = rmw_qos_profile_default,
|
|
||||||
std::shared_ptr<AllocatorT> allocator = nullptr);
|
|
||||||
|
|
||||||
/// Create and return a Subscription.
|
/// Create and return a Subscription.
|
||||||
/**
|
/**
|
||||||
* \param[in] topic_name The topic to subscribe on.
|
* \param[in] topic_name The topic to subscribe on.
|
||||||
|
@ -252,80 +214,6 @@ public:
|
||||||
>::SharedPtr
|
>::SharedPtr
|
||||||
msg_mem_strat = nullptr);
|
msg_mem_strat = nullptr);
|
||||||
|
|
||||||
/// Create and return a Subscription.
|
|
||||||
/**
|
|
||||||
* \param[in] topic_name The topic to subscribe on.
|
|
||||||
* \param[in] callback The user-defined callback function.
|
|
||||||
* \param[in] qos_profile The quality of service profile to pass on to the rmw implementation.
|
|
||||||
* \param[in] group The callback group for this subscription. NULL for no callback group.
|
|
||||||
* \param[in] ignore_local_publications True to ignore local publications.
|
|
||||||
* \param[in] msg_mem_strat The message memory strategy to use for allocating messages.
|
|
||||||
* \param[in] allocator Optional custom allocator.
|
|
||||||
* \return Shared pointer to the created subscription.
|
|
||||||
*/
|
|
||||||
/* TODO(jacquelinekay):
|
|
||||||
Windows build breaks when static member function passed as default
|
|
||||||
argument to msg_mem_strat, nullptr is a workaround.
|
|
||||||
*/
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename CallbackT,
|
|
||||||
typename Alloc = std::allocator<void>,
|
|
||||||
typename SubscriptionT = rclcpp::Subscription<
|
|
||||||
typename rclcpp::subscription_traits::has_message_type<CallbackT>::type, Alloc>>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated(
|
|
||||||
"use create_subscription(const std::string &, const rclcpp::QoS &, CallbackT, ...) instead"
|
|
||||||
)]]
|
|
||||||
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.
|
|
||||||
/**
|
|
||||||
* \param[in] topic_name The topic to subscribe on.
|
|
||||||
* \param[in] qos_history_depth The depth of the subscription's incoming message queue.
|
|
||||||
* \param[in] callback The user-defined callback function.
|
|
||||||
* \param[in] group The callback group for this subscription. NULL for no callback group.
|
|
||||||
* \param[in] ignore_local_publications True to ignore local publications.
|
|
||||||
* \param[in] msg_mem_strat The message memory strategy to use for allocating messages.
|
|
||||||
* \param[in] allocator Optional custom allocator.
|
|
||||||
* \return Shared pointer to the created subscription.
|
|
||||||
*/
|
|
||||||
/* TODO(jacquelinekay):
|
|
||||||
Windows build breaks when static member function passed as default
|
|
||||||
argument to msg_mem_strat, nullptr is a workaround.
|
|
||||||
*/
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename CallbackT,
|
|
||||||
typename Alloc = std::allocator<void>,
|
|
||||||
typename SubscriptionT = rclcpp::Subscription<
|
|
||||||
typename rclcpp::subscription_traits::has_message_type<CallbackT>::type, Alloc>>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated(
|
|
||||||
"use create_subscription(const std::string &, const rclcpp::QoS &, CallbackT, ...) instead"
|
|
||||||
)]]
|
|
||||||
std::shared_ptr<SubscriptionT>
|
|
||||||
create_subscription(
|
|
||||||
const std::string & topic_name,
|
|
||||||
CallbackT && callback,
|
|
||||||
size_t qos_history_depth,
|
|
||||||
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 a timer.
|
/// Create a timer.
|
||||||
/**
|
/**
|
||||||
* \param[in] period Time interval between triggers of the callback.
|
* \param[in] period Time interval between triggers of the callback.
|
||||||
|
@ -624,38 +512,6 @@ public:
|
||||||
rcl_interfaces::msg::SetParametersResult
|
rcl_interfaces::msg::SetParametersResult
|
||||||
set_parameters_atomically(const std::vector<rclcpp::Parameter> & parameters);
|
set_parameters_atomically(const std::vector<rclcpp::Parameter> & parameters);
|
||||||
|
|
||||||
/// Set one parameter, unless that parameter has already been set.
|
|
||||||
/**
|
|
||||||
* Set the given parameter unless already set.
|
|
||||||
*
|
|
||||||
* Deprecated, instead use declare_parameter().
|
|
||||||
*
|
|
||||||
* \param[in] parameters The vector of parameters to be set.
|
|
||||||
* \return The result of each set action as a vector.
|
|
||||||
*/
|
|
||||||
template<typename ParameterT>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use declare_parameter() instead")]]
|
|
||||||
void
|
|
||||||
set_parameter_if_not_set(const std::string & name, const ParameterT & value);
|
|
||||||
|
|
||||||
/// Set a map of parameters with the same prefix.
|
|
||||||
/**
|
|
||||||
* For each key in the map, a parameter with a name of "name.key" will be set
|
|
||||||
* to the value in the map.
|
|
||||||
*
|
|
||||||
* Deprecated, instead use declare_parameters().
|
|
||||||
*
|
|
||||||
* \param[in] name The prefix of the parameters to set.
|
|
||||||
* \param[in] values The parameters to set in the given prefix.
|
|
||||||
*/
|
|
||||||
template<typename ParameterT>
|
|
||||||
[[deprecated("use declare_parameters() instead")]]
|
|
||||||
void
|
|
||||||
set_parameters_if_not_set(
|
|
||||||
const std::string & name,
|
|
||||||
const std::map<std::string, ParameterT> & values);
|
|
||||||
|
|
||||||
/// Return the parameter by the given name.
|
/// Return the parameter by the given name.
|
||||||
/**
|
/**
|
||||||
* If the parameter has not been declared, then this method may throw the
|
* If the parameter has not been declared, then this method may throw the
|
||||||
|
@ -799,28 +655,6 @@ public:
|
||||||
const std::string & prefix,
|
const std::string & prefix,
|
||||||
std::map<std::string, ParameterT> & values) const;
|
std::map<std::string, ParameterT> & values) const;
|
||||||
|
|
||||||
/// Get the parameter value; if not set, set the "alternative value" and store it in the node.
|
|
||||||
/**
|
|
||||||
* If the parameter is set, then the "value" argument is assigned the value
|
|
||||||
* in the parameter.
|
|
||||||
* If the parameter is not set, then the "value" argument is assigned the "alternative_value",
|
|
||||||
* and the parameter is set to the "alternative_value" on the node.
|
|
||||||
*
|
|
||||||
* Deprecated, instead use declare_parameter()'s return value, or use
|
|
||||||
* has_parameter() to ensure it exists before getting it.
|
|
||||||
*
|
|
||||||
* \param[in] name The name of the parameter to get.
|
|
||||||
* \param[out] value The output where the value of the parameter should be assigned.
|
|
||||||
* \param[in] alternative_value Value to be used if the parameter was not set.
|
|
||||||
*/
|
|
||||||
template<typename ParameterT>
|
|
||||||
[[deprecated("use declare_parameter() and its return value instead")]]
|
|
||||||
void
|
|
||||||
get_parameter_or_set(
|
|
||||||
const std::string & name,
|
|
||||||
ParameterT & value,
|
|
||||||
const ParameterT & alternative_value);
|
|
||||||
|
|
||||||
/// Return the parameter descriptor for the given parameter name.
|
/// Return the parameter descriptor for the given parameter name.
|
||||||
/**
|
/**
|
||||||
* Like get_parameters(), this method may throw the
|
* Like get_parameters(), this method may throw the
|
||||||
|
@ -1006,17 +840,6 @@ public:
|
||||||
OnParametersSetCallbackType
|
OnParametersSetCallbackType
|
||||||
set_on_parameters_set_callback(rclcpp::Node::OnParametersSetCallbackType callback);
|
set_on_parameters_set_callback(rclcpp::Node::OnParametersSetCallbackType callback);
|
||||||
|
|
||||||
/// Register the callback for parameter changes
|
|
||||||
/**
|
|
||||||
* \param[in] callback User defined callback function.
|
|
||||||
* It is expected to atomically set parameters.
|
|
||||||
* \note Repeated invocations of this function will overwrite previous callbacks.
|
|
||||||
*/
|
|
||||||
template<typename CallbackT>
|
|
||||||
[[deprecated("use set_on_parameters_set_callback() instead")]]
|
|
||||||
void
|
|
||||||
register_param_change_callback(CallbackT && callback);
|
|
||||||
|
|
||||||
/// Get the fully-qualified names of all available nodes.
|
/// Get the fully-qualified names of all available nodes.
|
||||||
/**
|
/**
|
||||||
* The fully-qualified name includes the local namespace and name of the node.
|
* The fully-qualified name includes the local namespace and name of the node.
|
||||||
|
|
|
@ -79,34 +79,6 @@ Node::create_publisher(
|
||||||
options);
|
options);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename MessageT, typename AllocatorT, typename PublisherT>
|
|
||||||
std::shared_ptr<PublisherT>
|
|
||||||
Node::create_publisher(
|
|
||||||
const std::string & topic_name,
|
|
||||||
size_t qos_history_depth,
|
|
||||||
std::shared_ptr<AllocatorT> allocator)
|
|
||||||
{
|
|
||||||
PublisherOptionsWithAllocator<AllocatorT> pub_options;
|
|
||||||
pub_options.allocator = allocator;
|
|
||||||
return this->create_publisher<MessageT, AllocatorT, PublisherT>(
|
|
||||||
topic_name, rclcpp::QoS(rclcpp::KeepLast(qos_history_depth)), pub_options);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename MessageT, typename AllocatorT, typename PublisherT>
|
|
||||||
std::shared_ptr<PublisherT>
|
|
||||||
Node::create_publisher(
|
|
||||||
const std::string & topic_name,
|
|
||||||
const rmw_qos_profile_t & qos_profile,
|
|
||||||
std::shared_ptr<AllocatorT> allocator)
|
|
||||||
{
|
|
||||||
rclcpp::QoS qos(rclcpp::QoSInitialization::from_rmw(qos_profile));
|
|
||||||
qos.get_rmw_qos_profile() = qos_profile;
|
|
||||||
|
|
||||||
PublisherOptionsWithAllocator<AllocatorT> pub_options;
|
|
||||||
pub_options.allocator = allocator;
|
|
||||||
return this->create_publisher<MessageT, AllocatorT, PublisherT>(topic_name, qos, pub_options);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename MessageT,
|
typename MessageT,
|
||||||
typename CallbackT,
|
typename CallbackT,
|
||||||
|
@ -131,65 +103,6 @@ Node::create_subscription(
|
||||||
msg_mem_strat);
|
msg_mem_strat);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename CallbackT,
|
|
||||||
typename Alloc,
|
|
||||||
typename SubscriptionT>
|
|
||||||
std::shared_ptr<SubscriptionT>
|
|
||||||
Node::create_subscription(
|
|
||||||
const std::string & topic_name,
|
|
||||||
CallbackT && callback,
|
|
||||||
const rmw_qos_profile_t & qos_profile,
|
|
||||||
rclcpp::callback_group::CallbackGroup::SharedPtr group,
|
|
||||||
bool ignore_local_publications,
|
|
||||||
typename rclcpp::message_memory_strategy::MessageMemoryStrategy<
|
|
||||||
typename rclcpp::subscription_traits::has_message_type<CallbackT>::type, Alloc>::SharedPtr
|
|
||||||
msg_mem_strat,
|
|
||||||
std::shared_ptr<Alloc> allocator)
|
|
||||||
{
|
|
||||||
rclcpp::QoS qos(rclcpp::QoSInitialization::from_rmw(qos_profile));
|
|
||||||
qos.get_rmw_qos_profile() = qos_profile;
|
|
||||||
|
|
||||||
SubscriptionOptionsWithAllocator<Alloc> sub_options;
|
|
||||||
sub_options.callback_group = group;
|
|
||||||
sub_options.ignore_local_publications = ignore_local_publications;
|
|
||||||
sub_options.allocator = allocator;
|
|
||||||
|
|
||||||
return this->create_subscription<MessageT, CallbackT, Alloc, SubscriptionT>(
|
|
||||||
topic_name, qos, std::forward<CallbackT>(callback), sub_options, msg_mem_strat);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename CallbackT,
|
|
||||||
typename Alloc,
|
|
||||||
typename SubscriptionT>
|
|
||||||
std::shared_ptr<SubscriptionT>
|
|
||||||
Node::create_subscription(
|
|
||||||
const std::string & topic_name,
|
|
||||||
CallbackT && callback,
|
|
||||||
size_t qos_history_depth,
|
|
||||||
rclcpp::callback_group::CallbackGroup::SharedPtr group,
|
|
||||||
bool ignore_local_publications,
|
|
||||||
typename rclcpp::message_memory_strategy::MessageMemoryStrategy<
|
|
||||||
typename rclcpp::subscription_traits::has_message_type<CallbackT>::type, Alloc>::SharedPtr
|
|
||||||
msg_mem_strat,
|
|
||||||
std::shared_ptr<Alloc> allocator)
|
|
||||||
{
|
|
||||||
SubscriptionOptionsWithAllocator<Alloc> sub_options;
|
|
||||||
sub_options.callback_group = group;
|
|
||||||
sub_options.ignore_local_publications = ignore_local_publications;
|
|
||||||
sub_options.allocator = allocator;
|
|
||||||
|
|
||||||
return this->create_subscription<MessageT, CallbackT, Alloc, SubscriptionT>(
|
|
||||||
topic_name,
|
|
||||||
rclcpp::QoS(rclcpp::KeepLast(qos_history_depth)),
|
|
||||||
std::forward<CallbackT>(callback),
|
|
||||||
sub_options,
|
|
||||||
msg_mem_strat);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename DurationRepT, typename DurationT, typename CallbackT>
|
template<typename DurationRepT, typename DurationT, typename CallbackT>
|
||||||
typename rclcpp::WallTimer<CallbackT>::SharedPtr
|
typename rclcpp::WallTimer<CallbackT>::SharedPtr
|
||||||
Node::create_wall_timer(
|
Node::create_wall_timer(
|
||||||
|
@ -303,44 +216,6 @@ Node::declare_parameters(
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename ParameterT>
|
|
||||||
void
|
|
||||||
Node::set_parameter_if_not_set(
|
|
||||||
const std::string & name,
|
|
||||||
const ParameterT & value)
|
|
||||||
{
|
|
||||||
if (
|
|
||||||
!this->has_parameter(name) ||
|
|
||||||
this->describe_parameter(name).type == PARAMETER_NOT_SET)
|
|
||||||
{
|
|
||||||
this->set_parameter(rclcpp::Parameter(name, value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// this is a partially-specialized version of set_parameter_if_not_set above,
|
|
||||||
// where our concrete type for ParameterT is std::map, but the to-be-determined
|
|
||||||
// type is the value in the map.
|
|
||||||
template<typename ParameterT>
|
|
||||||
void
|
|
||||||
Node::set_parameters_if_not_set(
|
|
||||||
const std::string & name,
|
|
||||||
const std::map<std::string, ParameterT> & values)
|
|
||||||
{
|
|
||||||
std::vector<rclcpp::Parameter> params;
|
|
||||||
|
|
||||||
for (const auto & val : values) {
|
|
||||||
std::string parameter_name = name + "." + val.first;
|
|
||||||
if (
|
|
||||||
!this->has_parameter(parameter_name) ||
|
|
||||||
this->describe_parameter(parameter_name).type == PARAMETER_NOT_SET)
|
|
||||||
{
|
|
||||||
params.push_back(rclcpp::Parameter(parameter_name, val.second));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this->set_parameters(params);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename ParameterT>
|
template<typename ParameterT>
|
||||||
bool
|
bool
|
||||||
Node::get_parameter(const std::string & name, ParameterT & parameter) const
|
Node::get_parameter(const std::string & name, ParameterT & parameter) const
|
||||||
|
@ -393,29 +268,6 @@ Node::get_parameters(
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename ParameterT>
|
|
||||||
void
|
|
||||||
Node::get_parameter_or_set(
|
|
||||||
const std::string & name,
|
|
||||||
ParameterT & value,
|
|
||||||
const ParameterT & alternative_value)
|
|
||||||
{
|
|
||||||
std::string sub_name = extend_name_with_sub_namespace(name, this->get_sub_namespace());
|
|
||||||
|
|
||||||
bool got_parameter = get_parameter(sub_name, value);
|
|
||||||
if (!got_parameter) {
|
|
||||||
this->set_parameters({rclcpp::Parameter(sub_name, alternative_value), });
|
|
||||||
value = alternative_value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename CallbackT>
|
|
||||||
void
|
|
||||||
Node::register_param_change_callback(CallbackT && callback)
|
|
||||||
{
|
|
||||||
this->node_parameters_->register_param_change_callback(std::forward<CallbackT>(callback));
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace rclcpp
|
} // namespace rclcpp
|
||||||
|
|
||||||
#endif // RCLCPP__NODE_IMPL_HPP_
|
#endif // RCLCPP__NODE_IMPL_HPP_
|
||||||
|
|
|
@ -170,11 +170,6 @@ public:
|
||||||
OnParametersSetCallbackType
|
OnParametersSetCallbackType
|
||||||
set_on_parameters_set_callback(OnParametersSetCallbackType callback) override;
|
set_on_parameters_set_callback(OnParametersSetCallbackType callback) override;
|
||||||
|
|
||||||
[[deprecated("use set_on_parameters_set_callback() instead")]]
|
|
||||||
RCLCPP_PUBLIC
|
|
||||||
void
|
|
||||||
register_param_change_callback(OnParametersSetCallbackType callback) override;
|
|
||||||
|
|
||||||
RCLCPP_PUBLIC
|
RCLCPP_PUBLIC
|
||||||
const std::map<std::string, rclcpp::ParameterValue> &
|
const std::map<std::string, rclcpp::ParameterValue> &
|
||||||
get_parameter_overrides() const override;
|
get_parameter_overrides() const override;
|
||||||
|
|
|
@ -173,9 +173,6 @@ public:
|
||||||
|
|
||||||
using OnParametersSetCallbackType = OnSetParametersCallbackHandle::OnParametersSetCallbackType;
|
using OnParametersSetCallbackType = OnSetParametersCallbackHandle::OnParametersSetCallbackType;
|
||||||
|
|
||||||
using ParametersCallbackFunction [[deprecated("use OnParametersSetCallbackType instead")]] =
|
|
||||||
OnParametersSetCallbackType;
|
|
||||||
|
|
||||||
/// Add a callback for when parameters are being set.
|
/// Add a callback for when parameters are being set.
|
||||||
/**
|
/**
|
||||||
* \sa rclcpp::Node::add_on_set_parameters_callback
|
* \sa rclcpp::Node::add_on_set_parameters_callback
|
||||||
|
@ -203,12 +200,6 @@ public:
|
||||||
OnParametersSetCallbackType
|
OnParametersSetCallbackType
|
||||||
set_on_parameters_set_callback(OnParametersSetCallbackType callback) = 0;
|
set_on_parameters_set_callback(OnParametersSetCallbackType callback) = 0;
|
||||||
|
|
||||||
[[deprecated("use set_on_parameters_set_callback() instead")]]
|
|
||||||
RCLCPP_PUBLIC
|
|
||||||
virtual
|
|
||||||
void
|
|
||||||
register_param_change_callback(OnParametersSetCallbackType callback) = 0;
|
|
||||||
|
|
||||||
/// Return the initial parameter values used by the NodeParameters to override default values.
|
/// Return the initial parameter values used by the NodeParameters to override default values.
|
||||||
RCLCPP_PUBLIC
|
RCLCPP_PUBLIC
|
||||||
virtual
|
virtual
|
||||||
|
|
|
@ -127,18 +127,6 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Skip deprecated attribute in windows, as it raise a warning in template specialization.
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
[[deprecated(
|
|
||||||
"publishing an unique_ptr is prefered when using intra process communication."
|
|
||||||
" If using a shared_ptr, use publish(*msg).")]]
|
|
||||||
#endif
|
|
||||||
virtual void
|
|
||||||
publish(const std::shared_ptr<const MessageT> & msg)
|
|
||||||
{
|
|
||||||
publish(*msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void
|
virtual void
|
||||||
publish(const MessageT & msg)
|
publish(const MessageT & msg)
|
||||||
{
|
{
|
||||||
|
@ -156,48 +144,12 @@ public:
|
||||||
this->publish(std::move(unique_msg));
|
this->publish(std::move(unique_msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Skip deprecated attribute in windows, as it raise a warning in template specialization.
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
[[deprecated(
|
|
||||||
"Use publish(*msg). Check against nullptr before calling if necessary.")]]
|
|
||||||
#endif
|
|
||||||
virtual void
|
|
||||||
publish(const MessageT * msg)
|
|
||||||
{
|
|
||||||
if (!msg) {
|
|
||||||
throw std::runtime_error("msg argument is nullptr");
|
|
||||||
}
|
|
||||||
return this->publish(*msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
publish(const rcl_serialized_message_t & serialized_msg)
|
publish(const rcl_serialized_message_t & serialized_msg)
|
||||||
{
|
{
|
||||||
return this->do_serialized_publish(&serialized_msg);
|
return this->do_serialized_publish(&serialized_msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Skip deprecated attribute in windows, as it raise a warning in template specialization.
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
[[deprecated(
|
|
||||||
"Use publish(*serialized_msg). Check against nullptr before calling if necessary.")]]
|
|
||||||
#endif
|
|
||||||
void
|
|
||||||
publish(const rcl_serialized_message_t * serialized_msg)
|
|
||||||
{
|
|
||||||
return this->do_serialized_publish(serialized_msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Skip deprecated attribute in windows, as it raise a warning in template specialization.
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
[[deprecated(
|
|
||||||
"Use publish(*serialized_msg). Check against nullptr before calling if necessary.")]]
|
|
||||||
#endif
|
|
||||||
void
|
|
||||||
publish(std::shared_ptr<const rcl_serialized_message_t> serialized_msg)
|
|
||||||
{
|
|
||||||
return this->do_serialized_publish(serialized_msg.get());
|
|
||||||
}
|
|
||||||
|
|
||||||
std::shared_ptr<MessageAlloc> get_allocator() const
|
std::shared_ptr<MessageAlloc> get_allocator() const
|
||||||
{
|
{
|
||||||
return message_allocator_;
|
return message_allocator_;
|
||||||
|
|
|
@ -48,7 +48,8 @@
|
||||||
* - rclcpp::Node::get_parameter()
|
* - rclcpp::Node::get_parameter()
|
||||||
* - rclcpp::Node::describe_parameters()
|
* - rclcpp::Node::describe_parameters()
|
||||||
* - rclcpp::Node::list_parameters()
|
* - rclcpp::Node::list_parameters()
|
||||||
* - rclcpp::Node::register_param_change_callback()
|
* - rclcpp::Node::add_on_set_parameters_callback()
|
||||||
|
* - rclcpp::Node::remove_on_set_parameters_callback()
|
||||||
* - rclcpp::Parameter
|
* - rclcpp::Parameter
|
||||||
* - rclcpp::ParameterValue
|
* - rclcpp::ParameterValue
|
||||||
* - rclcpp::AsyncParametersClient
|
* - rclcpp::AsyncParametersClient
|
||||||
|
|
|
@ -27,17 +27,7 @@
|
||||||
#include "rclcpp/node_interfaces/node_clock.hpp"
|
#include "rclcpp/node_interfaces/node_clock.hpp"
|
||||||
#include "rclcpp/node_interfaces/node_graph.hpp"
|
#include "rclcpp/node_interfaces/node_graph.hpp"
|
||||||
#include "rclcpp/node_interfaces/node_logging.hpp"
|
#include "rclcpp/node_interfaces/node_logging.hpp"
|
||||||
// When compiling this file, Windows produces a deprecation warning for the
|
|
||||||
// deprecated function prototype of NodeParameters::register_param_change_callback().
|
|
||||||
// Other compilers do not.
|
|
||||||
#if defined(_WIN32)
|
|
||||||
# pragma warning(push)
|
|
||||||
# pragma warning(disable: 4996)
|
|
||||||
#endif
|
|
||||||
#include "rclcpp/node_interfaces/node_parameters.hpp"
|
#include "rclcpp/node_interfaces/node_parameters.hpp"
|
||||||
#if defined(_WIN32)
|
|
||||||
# pragma warning(pop)
|
|
||||||
#endif
|
|
||||||
#include "rclcpp/node_interfaces/node_services.hpp"
|
#include "rclcpp/node_interfaces/node_services.hpp"
|
||||||
#include "rclcpp/node_interfaces/node_time_source.hpp"
|
#include "rclcpp/node_interfaces/node_time_source.hpp"
|
||||||
#include "rclcpp/node_interfaces/node_timers.hpp"
|
#include "rclcpp/node_interfaces/node_timers.hpp"
|
||||||
|
|
|
@ -12,17 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
// When compiling this file, Windows produces a deprecation warning for the
|
|
||||||
// deprecated function prototype of NodeParameters::register_param_change_callback().
|
|
||||||
// Other compilers do not.
|
|
||||||
#if defined(_WIN32)
|
|
||||||
# pragma warning(push)
|
|
||||||
# pragma warning(disable: 4996)
|
|
||||||
#endif
|
|
||||||
#include "rclcpp/node_interfaces/node_parameters.hpp"
|
#include "rclcpp/node_interfaces/node_parameters.hpp"
|
||||||
#if defined(_WIN32)
|
|
||||||
# pragma warning(pop)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <rcl_yaml_param_parser/parser.h>
|
#include <rcl_yaml_param_parser/parser.h>
|
||||||
|
|
||||||
|
@ -919,33 +909,6 @@ NodeParameters::set_on_parameters_set_callback(OnParametersSetCallbackType callb
|
||||||
return existing_callback;
|
return existing_callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic push
|
|
||||||
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
|
||||||
#else // !defined(_WIN32)
|
|
||||||
# pragma warning(push)
|
|
||||||
# pragma warning(disable: 4996)
|
|
||||||
#endif
|
|
||||||
void
|
|
||||||
NodeParameters::register_param_change_callback(ParametersCallbackFunction callback)
|
|
||||||
{
|
|
||||||
std::lock_guard<std::recursive_mutex> lock(mutex_);
|
|
||||||
|
|
||||||
ParameterMutationRecursionGuard guard(parameter_modification_enabled_);
|
|
||||||
|
|
||||||
if (on_parameters_set_callback_) {
|
|
||||||
RCLCPP_WARN(
|
|
||||||
node_logging_->get_logger(),
|
|
||||||
"on_parameters_set_callback already registered, overwriting previous callback");
|
|
||||||
}
|
|
||||||
on_parameters_set_callback_ = callback;
|
|
||||||
}
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic pop
|
|
||||||
#else // !defined(_WIN32)
|
|
||||||
# pragma warning(pop)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const std::map<std::string, rclcpp::ParameterValue> &
|
const std::map<std::string, rclcpp::ParameterValue> &
|
||||||
NodeParameters::get_parameter_overrides() const
|
NodeParameters::get_parameter_overrides() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,17 +19,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
// When compiling this file, Windows produces a deprecation warning for the
|
|
||||||
// deprecated function prototype of NodeParameters::register_param_change_callback().
|
|
||||||
// Other compilers do not.
|
|
||||||
#if defined(_WIN32)
|
|
||||||
# pragma warning(push)
|
|
||||||
# pragma warning(disable: 4996)
|
|
||||||
#endif
|
|
||||||
#include "rclcpp/node_interfaces/node_parameters.hpp"
|
#include "rclcpp/node_interfaces/node_parameters.hpp"
|
||||||
#if defined(_WIN32)
|
|
||||||
# pragma warning(pop)
|
|
||||||
#endif
|
|
||||||
#include "rclcpp/utilities.hpp"
|
#include "rclcpp/utilities.hpp"
|
||||||
|
|
||||||
using rclcpp::ParameterType;
|
using rclcpp::ParameterType;
|
||||||
|
|
|
@ -1,97 +0,0 @@
|
||||||
// Copyright 2018 Open Source Robotics Foundation, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#include <cstdio>
|
|
||||||
#include <map>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
#include "gtest/gtest.h"
|
|
||||||
|
|
||||||
#include "rclcpp/rclcpp.hpp"
|
|
||||||
|
|
||||||
TEST(test_local_parameters, set_parameter_if_not_set) {
|
|
||||||
auto node = rclcpp::Node::make_shared(
|
|
||||||
"test_local_parameters_set_parameter_if_not_set",
|
|
||||||
rclcpp::NodeOptions().allow_undeclared_parameters(true));
|
|
||||||
|
|
||||||
{
|
|
||||||
// try to set a map of parameters
|
|
||||||
std::map<std::string, double> bar_map{
|
|
||||||
{"x", 0.5},
|
|
||||||
{"y", 1.0},
|
|
||||||
};
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic push
|
|
||||||
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
|
||||||
#else // !defined(_WIN32)
|
|
||||||
# pragma warning(push)
|
|
||||||
# pragma warning(disable: 4996)
|
|
||||||
#endif
|
|
||||||
node->set_parameters_if_not_set("bar", bar_map);
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic pop
|
|
||||||
#else // !defined(_WIN32)
|
|
||||||
# pragma warning(pop)
|
|
||||||
#endif
|
|
||||||
double bar_x_value;
|
|
||||||
ASSERT_TRUE(node->get_parameter("bar.x", bar_x_value));
|
|
||||||
EXPECT_EQ(bar_x_value, 0.5);
|
|
||||||
double bar_y_value;
|
|
||||||
ASSERT_TRUE(node->get_parameter("bar.y", bar_y_value));
|
|
||||||
EXPECT_EQ(bar_y_value, 1.0);
|
|
||||||
std::map<std::string, double> new_map;
|
|
||||||
ASSERT_TRUE(node->get_parameters("bar", new_map));
|
|
||||||
ASSERT_EQ(new_map.size(), 2U);
|
|
||||||
EXPECT_EQ(new_map["x"], 0.5);
|
|
||||||
EXPECT_EQ(new_map["y"], 1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// try to get a map of parameters that doesn't exist
|
|
||||||
std::map<std::string, double> no_exist_map;
|
|
||||||
ASSERT_FALSE(node->get_parameters("no_exist", no_exist_map));
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// set parameters for a map with different types, then try to get them back as a map
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic push
|
|
||||||
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
|
||||||
#else // !defined(_WIN32)
|
|
||||||
# pragma warning(push)
|
|
||||||
# pragma warning(disable: 4996)
|
|
||||||
#endif
|
|
||||||
node->set_parameter_if_not_set("baz.x", 1.0);
|
|
||||||
node->set_parameter_if_not_set("baz.y", "hello");
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic pop
|
|
||||||
#else // !defined(_WIN32)
|
|
||||||
# pragma warning(pop)
|
|
||||||
#endif
|
|
||||||
std::map<std::string, double> baz_map;
|
|
||||||
EXPECT_THROW(node->get_parameters("baz", baz_map), rclcpp::ParameterTypeException);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char ** argv)
|
|
||||||
{
|
|
||||||
::setvbuf(stdout, NULL, _IONBF, BUFSIZ);
|
|
||||||
|
|
||||||
// NOTE: use custom main to ensure that rclcpp::init is called only once
|
|
||||||
rclcpp::init(argc, argv);
|
|
||||||
::testing::InitGoogleTest(&argc, argv);
|
|
||||||
int ret = RUN_ALL_TESTS();
|
|
||||||
rclcpp::shutdown();
|
|
||||||
return ret;
|
|
||||||
}
|
|
|
@ -139,41 +139,6 @@ TEST_F(TestPublisher, various_creation_signatures) {
|
||||||
rclcpp::create_publisher<IntraProcessMessage>(node, "topic", 42, rclcpp::PublisherOptions());
|
rclcpp::create_publisher<IntraProcessMessage>(node, "topic", 42, rclcpp::PublisherOptions());
|
||||||
(void)publisher;
|
(void)publisher;
|
||||||
}
|
}
|
||||||
// Now deprecated functions.
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic push
|
|
||||||
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
|
||||||
#else // !defined(_WIN32)
|
|
||||||
# pragma warning(push)
|
|
||||||
# pragma warning(disable: 4996)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
auto publisher = node->create_publisher<IntraProcessMessage>("topic");
|
|
||||||
(void)publisher;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
auto publisher = node->create_publisher<IntraProcessMessage>(
|
|
||||||
"topic",
|
|
||||||
42,
|
|
||||||
std::make_shared<std::allocator<IntraProcessMessage>>());
|
|
||||||
(void)publisher;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
auto publisher = node->create_publisher<IntraProcessMessage>("topic", rmw_qos_profile_default);
|
|
||||||
(void)publisher;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
auto publisher = node->create_publisher<IntraProcessMessage>(
|
|
||||||
"topic",
|
|
||||||
rmw_qos_profile_default,
|
|
||||||
std::make_shared<std::allocator<IntraProcessMessage>>());
|
|
||||||
(void)publisher;
|
|
||||||
}
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic pop
|
|
||||||
#else // !defined(_WIN32)
|
|
||||||
# pragma warning(pop)
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -203,40 +203,6 @@ TEST_F(TestSubscription, various_creation_signatures) {
|
||||||
node, "topic", 42, cb, rclcpp::SubscriptionOptions());
|
node, "topic", 42, cb, rclcpp::SubscriptionOptions());
|
||||||
(void)sub;
|
(void)sub;
|
||||||
}
|
}
|
||||||
// Now deprecated functions.
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic push
|
|
||||||
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
|
||||||
#else // !defined(_WIN32)
|
|
||||||
# pragma warning(push)
|
|
||||||
# pragma warning(disable: 4996)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
auto sub = node->create_subscription<IntraProcessMessage>("topic", cb, 42);
|
|
||||||
(void)sub;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
auto sub = node->create_subscription<IntraProcessMessage>("topic", cb);
|
|
||||||
(void)sub;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
auto sub = node->create_subscription<IntraProcessMessage>("topic", cb, rmw_qos_profile_default);
|
|
||||||
(void)sub;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
auto sub =
|
|
||||||
node->create_subscription<IntraProcessMessage>("topic", cb, rmw_qos_profile_default, nullptr);
|
|
||||||
(void)sub;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
auto sub = node->create_subscription<IntraProcessMessage>("topic", cb, 42, nullptr);
|
|
||||||
(void)sub;
|
|
||||||
}
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic pop
|
|
||||||
#else // !defined(_WIN32)
|
|
||||||
# pragma warning(pop)
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -170,38 +170,6 @@ public:
|
||||||
create_default_publisher_options<AllocatorT>()
|
create_default_publisher_options<AllocatorT>()
|
||||||
);
|
);
|
||||||
|
|
||||||
/// Create and return a Publisher.
|
|
||||||
/**
|
|
||||||
* \param[in] topic_name The topic for this publisher to publish on.
|
|
||||||
* \param[in] qos_history_depth The depth of the publisher message queue.
|
|
||||||
* \param[in] allocator allocator to use during publishing activities.
|
|
||||||
* \return Shared pointer to the created publisher.
|
|
||||||
*/
|
|
||||||
template<typename MessageT, typename Alloc = std::allocator<void>>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use create_publisher(const std::string &, const rclcpp::QoS &, ...) instead")]]
|
|
||||||
std::shared_ptr<rclcpp_lifecycle::LifecyclePublisher<MessageT, Alloc>>
|
|
||||||
create_publisher(
|
|
||||||
const std::string & topic_name,
|
|
||||||
size_t qos_history_depth,
|
|
||||||
std::shared_ptr<Alloc> allocator);
|
|
||||||
|
|
||||||
/// Create and return a LifecyclePublisher.
|
|
||||||
/**
|
|
||||||
* \param[in] topic_name The topic for this publisher to publish on.
|
|
||||||
* \param[in] qos_profile The QoS settings for this publisher.
|
|
||||||
* \param[in] allocator allocator to use during publishing activities.
|
|
||||||
* \return Shared pointer to the created publisher.
|
|
||||||
*/
|
|
||||||
template<typename MessageT, typename Alloc = std::allocator<void>>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use create_publisher(const std::string &, const rclcpp::QoS &, ...) instead")]]
|
|
||||||
std::shared_ptr<rclcpp_lifecycle::LifecyclePublisher<MessageT, Alloc>>
|
|
||||||
create_publisher(
|
|
||||||
const std::string & topic_name,
|
|
||||||
const rmw_qos_profile_t & qos_profile = rmw_qos_profile_default,
|
|
||||||
std::shared_ptr<Alloc> allocator = nullptr);
|
|
||||||
|
|
||||||
/// Create and return a Subscription.
|
/// Create and return a Subscription.
|
||||||
/**
|
/**
|
||||||
* \param[in] topic_name The topic to subscribe on.
|
* \param[in] topic_name The topic to subscribe on.
|
||||||
|
@ -232,77 +200,6 @@ public:
|
||||||
>::SharedPtr
|
>::SharedPtr
|
||||||
msg_mem_strat = nullptr);
|
msg_mem_strat = nullptr);
|
||||||
|
|
||||||
/// Create and return a Subscription.
|
|
||||||
/**
|
|
||||||
* \param[in] topic_name The topic to subscribe on.
|
|
||||||
* \param[in] callback The user-defined callback function.
|
|
||||||
* \param[in] qos_profile The quality of service profile to pass on to the rmw implementation.
|
|
||||||
* \param[in] group The callback group for this subscription. NULL for no callback group.
|
|
||||||
* \param[in] ignore_local_publications True to ignore local publications.
|
|
||||||
* \param[in] msg_mem_strat The message memory strategy to use for allocating messages.
|
|
||||||
* \return Shared pointer to the created subscription.
|
|
||||||
*/
|
|
||||||
/* TODO(jacquelinekay):
|
|
||||||
Windows build breaks when static member function passed as default
|
|
||||||
argument to msg_mem_strat, nullptr is a workaround.
|
|
||||||
*/
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename CallbackT,
|
|
||||||
typename Alloc = std::allocator<void>,
|
|
||||||
typename SubscriptionT = rclcpp::Subscription<MessageT, Alloc>>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated(
|
|
||||||
"use create_subscription(const std::string &, const rclcpp::QoS &, CallbackT, ...) instead"
|
|
||||||
)]]
|
|
||||||
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.
|
|
||||||
/**
|
|
||||||
* \param[in] topic_name The topic to subscribe on.
|
|
||||||
* \param[in] qos_history_depth The depth of the subscription's incoming message queue.
|
|
||||||
* \param[in] callback The user-defined callback function.
|
|
||||||
* \param[in] group The callback group for this subscription. NULL for no callback group.
|
|
||||||
* \param[in] ignore_local_publications True to ignore local publications.
|
|
||||||
* \param[in] msg_mem_strat The message memory strategy to use for allocating messages.
|
|
||||||
* \param[in] allocator allocator to be used during handling of subscription callbacks.
|
|
||||||
* \return Shared pointer to the created subscription.
|
|
||||||
*/
|
|
||||||
/* TODO(jacquelinekay):
|
|
||||||
Windows build breaks when static member function passed as default
|
|
||||||
argument to msg_mem_strat, nullptr is a workaround.
|
|
||||||
*/
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename CallbackT,
|
|
||||||
typename Alloc = std::allocator<void>,
|
|
||||||
typename SubscriptionT = rclcpp::Subscription<MessageT, Alloc>>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated(
|
|
||||||
"use create_subscription(const std::string &, const rclcpp::QoS &, CallbackT, ...) instead"
|
|
||||||
)]]
|
|
||||||
std::shared_ptr<SubscriptionT>
|
|
||||||
create_subscription(
|
|
||||||
const std::string & topic_name,
|
|
||||||
size_t qos_history_depth,
|
|
||||||
CallbackT && callback,
|
|
||||||
rclcpp::callback_group::CallbackGroup::SharedPtr group,
|
|
||||||
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 a timer.
|
/// Create a timer.
|
||||||
/**
|
/**
|
||||||
* \param[in] period Time interval between triggers of the callback.
|
* \param[in] period Time interval between triggers of the callback.
|
||||||
|
@ -420,30 +317,6 @@ public:
|
||||||
rcl_interfaces::msg::SetParametersResult
|
rcl_interfaces::msg::SetParametersResult
|
||||||
set_parameters_atomically(const std::vector<rclcpp::Parameter> & parameters);
|
set_parameters_atomically(const std::vector<rclcpp::Parameter> & parameters);
|
||||||
|
|
||||||
/// Set one parameter, unless that parameter has already been set.
|
|
||||||
/**
|
|
||||||
* \sa rclcpp::Node::set_parameter_if_not_set
|
|
||||||
*/
|
|
||||||
template<typename ParameterT>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use declare_parameter() instead")]]
|
|
||||||
void
|
|
||||||
set_parameter_if_not_set(
|
|
||||||
const std::string & name,
|
|
||||||
const ParameterT & value);
|
|
||||||
|
|
||||||
/// Set a map of parameters with the same prefix.
|
|
||||||
/**
|
|
||||||
* \sa rclcpp::Node::set_parameters_if_not_set
|
|
||||||
*/
|
|
||||||
template<typename MapValueT>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use declare_parameters() instead")]]
|
|
||||||
void
|
|
||||||
set_parameters_if_not_set(
|
|
||||||
const std::string & name,
|
|
||||||
const std::map<std::string, MapValueT> & values);
|
|
||||||
|
|
||||||
/// Return the parameter by the given name.
|
/// Return the parameter by the given name.
|
||||||
/**
|
/**
|
||||||
* \sa rclcpp::Node::get_parameter
|
* \sa rclcpp::Node::get_parameter
|
||||||
|
@ -499,19 +372,6 @@ public:
|
||||||
const std::string & prefix,
|
const std::string & prefix,
|
||||||
std::map<std::string, MapValueT> & values) const;
|
std::map<std::string, MapValueT> & values) const;
|
||||||
|
|
||||||
/// Get the parameter value; if not set, set the "alternative value" and store it in the node.
|
|
||||||
/**
|
|
||||||
* \sa rclcpp::Node::get_parameter_or_set
|
|
||||||
*/
|
|
||||||
template<typename ParameterT>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use declare_parameter() and its return value instead")]]
|
|
||||||
void
|
|
||||||
get_parameter_or_set(
|
|
||||||
const std::string & name,
|
|
||||||
ParameterT & value,
|
|
||||||
const ParameterT & alternative_value);
|
|
||||||
|
|
||||||
/// Return the parameter descriptor for the given parameter name.
|
/// Return the parameter descriptor for the given parameter name.
|
||||||
/**
|
/**
|
||||||
* \sa rclcpp::Node::describe_parameter
|
* \sa rclcpp::Node::describe_parameter
|
||||||
|
@ -556,16 +416,6 @@ public:
|
||||||
set_on_parameters_set_callback(
|
set_on_parameters_set_callback(
|
||||||
rclcpp_lifecycle::LifecycleNode::OnParametersSetCallbackType callback);
|
rclcpp_lifecycle::LifecycleNode::OnParametersSetCallbackType callback);
|
||||||
|
|
||||||
/// Register the callback for parameter changes
|
|
||||||
/**
|
|
||||||
* \sa rclcpp::Node::register_param_change_callback
|
|
||||||
*/
|
|
||||||
template<typename CallbackT>
|
|
||||||
// cppcheck-suppress syntaxError // bug in cppcheck 1.82 for [[deprecated]] on templated function
|
|
||||||
[[deprecated("use set_on_parameters_set_callback() instead")]]
|
|
||||||
void
|
|
||||||
register_param_change_callback(CallbackT && callback);
|
|
||||||
|
|
||||||
RCLCPP_LIFECYCLE_PUBLIC
|
RCLCPP_LIFECYCLE_PUBLIC
|
||||||
std::vector<std::string>
|
std::vector<std::string>
|
||||||
get_node_names() const;
|
get_node_names() const;
|
||||||
|
|
|
@ -54,40 +54,6 @@ LifecycleNode::create_publisher(
|
||||||
options);
|
options);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename MessageT, typename Alloc>
|
|
||||||
std::shared_ptr<rclcpp_lifecycle::LifecyclePublisher<MessageT, Alloc>>
|
|
||||||
LifecycleNode::create_publisher(
|
|
||||||
const std::string & topic_name,
|
|
||||||
size_t qos_history_depth,
|
|
||||||
std::shared_ptr<Alloc> allocator)
|
|
||||||
{
|
|
||||||
rclcpp::PublisherOptionsWithAllocator<Alloc> options;
|
|
||||||
options.allocator = allocator;
|
|
||||||
return this->create_publisher<MessageT, Alloc>(
|
|
||||||
topic_name,
|
|
||||||
rclcpp::QoS(rclcpp::KeepLast(qos_history_depth)),
|
|
||||||
options);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename MessageT, typename Alloc>
|
|
||||||
std::shared_ptr<rclcpp_lifecycle::LifecyclePublisher<MessageT, Alloc>>
|
|
||||||
LifecycleNode::create_publisher(
|
|
||||||
const std::string & topic_name,
|
|
||||||
const rmw_qos_profile_t & qos_profile,
|
|
||||||
std::shared_ptr<Alloc> allocator)
|
|
||||||
{
|
|
||||||
rclcpp::QoS qos(rclcpp::QoSInitialization::from_rmw(qos_profile));
|
|
||||||
qos.get_rmw_qos_profile() = qos_profile;
|
|
||||||
|
|
||||||
rclcpp::PublisherOptionsWithAllocator<Alloc> pub_options;
|
|
||||||
pub_options.allocator = allocator;
|
|
||||||
|
|
||||||
return this->create_publisher<MessageT, Alloc>(
|
|
||||||
topic_name,
|
|
||||||
qos,
|
|
||||||
pub_options);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO(karsten1987): Create LifecycleSubscriber
|
// TODO(karsten1987): Create LifecycleSubscriber
|
||||||
template<
|
template<
|
||||||
typename MessageT,
|
typename MessageT,
|
||||||
|
@ -113,65 +79,6 @@ LifecycleNode::create_subscription(
|
||||||
msg_mem_strat);
|
msg_mem_strat);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename CallbackT,
|
|
||||||
typename Alloc,
|
|
||||||
typename SubscriptionT>
|
|
||||||
std::shared_ptr<SubscriptionT>
|
|
||||||
LifecycleNode::create_subscription(
|
|
||||||
const std::string & topic_name,
|
|
||||||
CallbackT && callback,
|
|
||||||
const rmw_qos_profile_t & qos_profile,
|
|
||||||
rclcpp::callback_group::CallbackGroup::SharedPtr group,
|
|
||||||
bool ignore_local_publications,
|
|
||||||
typename rclcpp::message_memory_strategy::MessageMemoryStrategy<
|
|
||||||
typename rclcpp::subscription_traits::has_message_type<CallbackT>::type, Alloc>::SharedPtr
|
|
||||||
msg_mem_strat,
|
|
||||||
std::shared_ptr<Alloc> allocator)
|
|
||||||
{
|
|
||||||
rclcpp::QoS qos(rclcpp::QoSInitialization::from_rmw(qos_profile));
|
|
||||||
qos.get_rmw_qos_profile() = qos_profile;
|
|
||||||
|
|
||||||
rclcpp::SubscriptionOptionsWithAllocator<Alloc> sub_options;
|
|
||||||
sub_options.callback_group = group;
|
|
||||||
sub_options.ignore_local_publications = ignore_local_publications;
|
|
||||||
sub_options.allocator = allocator;
|
|
||||||
|
|
||||||
return this->create_subscription<MessageT, CallbackT, Alloc, SubscriptionT>(
|
|
||||||
topic_name, std::forward<CallbackT>(callback), qos, sub_options, msg_mem_strat);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<
|
|
||||||
typename MessageT,
|
|
||||||
typename CallbackT,
|
|
||||||
typename Alloc,
|
|
||||||
typename SubscriptionT>
|
|
||||||
std::shared_ptr<SubscriptionT>
|
|
||||||
LifecycleNode::create_subscription(
|
|
||||||
const std::string & topic_name,
|
|
||||||
size_t qos_history_depth,
|
|
||||||
CallbackT && callback,
|
|
||||||
rclcpp::callback_group::CallbackGroup::SharedPtr group,
|
|
||||||
bool ignore_local_publications,
|
|
||||||
typename rclcpp::message_memory_strategy::MessageMemoryStrategy<
|
|
||||||
typename rclcpp::subscription_traits::has_message_type<CallbackT>::type, Alloc>::SharedPtr
|
|
||||||
msg_mem_strat,
|
|
||||||
std::shared_ptr<Alloc> allocator)
|
|
||||||
{
|
|
||||||
rclcpp::SubscriptionOptionsWithAllocator<Alloc> sub_options;
|
|
||||||
sub_options.callback_group = group;
|
|
||||||
sub_options.ignore_local_publications = ignore_local_publications;
|
|
||||||
sub_options.allocator = allocator;
|
|
||||||
|
|
||||||
return this->create_subscription<MessageT, CallbackT, Alloc, SubscriptionT>(
|
|
||||||
topic_name,
|
|
||||||
std::forward<CallbackT>(callback),
|
|
||||||
rclcpp::QoS(rclcpp::KeepLast(qos_history_depth)),
|
|
||||||
sub_options,
|
|
||||||
msg_mem_strat);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename DurationRepT, typename DurationT, typename CallbackT>
|
template<typename DurationRepT, typename DurationT, typename CallbackT>
|
||||||
typename rclcpp::WallTimer<CallbackT>::SharedPtr
|
typename rclcpp::WallTimer<CallbackT>::SharedPtr
|
||||||
LifecycleNode::create_wall_timer(
|
LifecycleNode::create_wall_timer(
|
||||||
|
@ -290,47 +197,6 @@ LifecycleNode::get_parameter(const std::string & name, ParameterT & parameter) c
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename CallbackT>
|
|
||||||
void
|
|
||||||
LifecycleNode::register_param_change_callback(CallbackT && callback)
|
|
||||||
{
|
|
||||||
this->node_parameters_->set_on_parameters_set_callback(std::forward<CallbackT>(callback));
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename ParameterT>
|
|
||||||
void
|
|
||||||
LifecycleNode::set_parameter_if_not_set(
|
|
||||||
const std::string & name,
|
|
||||||
const ParameterT & value)
|
|
||||||
{
|
|
||||||
rclcpp::Parameter parameter;
|
|
||||||
if (!this->get_parameter(name, parameter)) {
|
|
||||||
this->set_parameters({rclcpp::Parameter(name, value), });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// this is a partially-specialized version of set_parameter_if_not_set above,
|
|
||||||
// where our concrete type for ParameterT is std::map, but the to-be-determined
|
|
||||||
// type is the value in the map.
|
|
||||||
template<typename MapValueT>
|
|
||||||
void
|
|
||||||
LifecycleNode::set_parameters_if_not_set(
|
|
||||||
const std::string & name,
|
|
||||||
const std::map<std::string, MapValueT> & values)
|
|
||||||
{
|
|
||||||
std::vector<rclcpp::Parameter> params;
|
|
||||||
|
|
||||||
for (const auto & val : values) {
|
|
||||||
std::string param_name = name + "." + val.first;
|
|
||||||
rclcpp::Parameter parameter;
|
|
||||||
if (!this->get_parameter(param_name, parameter)) {
|
|
||||||
params.push_back(rclcpp::Parameter(param_name, val.second));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this->set_parameters(params);
|
|
||||||
}
|
|
||||||
|
|
||||||
// this is a partially-specialized version of get_parameter above,
|
// this is a partially-specialized version of get_parameter above,
|
||||||
// where our concrete type for ParameterT is std::map, but the to-be-determined
|
// where our concrete type for ParameterT is std::map, but the to-be-determined
|
||||||
// type is the value in the map.
|
// type is the value in the map.
|
||||||
|
@ -365,19 +231,5 @@ LifecycleNode::get_parameter_or(
|
||||||
return got_parameter;
|
return got_parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename ParameterT>
|
|
||||||
void
|
|
||||||
LifecycleNode::get_parameter_or_set(
|
|
||||||
const std::string & name,
|
|
||||||
ParameterT & value,
|
|
||||||
const ParameterT & alternative_value)
|
|
||||||
{
|
|
||||||
bool got_parameter = get_parameter(name, value);
|
|
||||||
if (!got_parameter) {
|
|
||||||
this->set_parameters({rclcpp::Parameter(name, alternative_value), });
|
|
||||||
value = alternative_value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace rclcpp_lifecycle
|
} // namespace rclcpp_lifecycle
|
||||||
#endif // RCLCPP_LIFECYCLE__LIFECYCLE_NODE_IMPL_HPP_
|
#endif // RCLCPP_LIFECYCLE__LIFECYCLE_NODE_IMPL_HPP_
|
||||||
|
|
|
@ -113,53 +113,6 @@ public:
|
||||||
rclcpp::Publisher<MessageT, Alloc>::publish(msg);
|
rclcpp::Publisher<MessageT, Alloc>::publish(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// LifecyclePublisher publish function
|
|
||||||
/**
|
|
||||||
* The publish function checks whether the communication
|
|
||||||
* was enabled or disabled and forwards the message
|
|
||||||
* to the actual rclcpp Publisher base class
|
|
||||||
*/
|
|
||||||
// Skip deprecated attribute in windows, as it raise a warning in template specialization.
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
// Avoid raising a deprecated warning in template specialization in linux.
|
|
||||||
# pragma GCC diagnostic push
|
|
||||||
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
|
||||||
[[deprecated(
|
|
||||||
"publishing an unique_ptr is prefered when using intra process communication."
|
|
||||||
" If using a shared_ptr, use publish(*msg).")]]
|
|
||||||
#endif
|
|
||||||
virtual void
|
|
||||||
publish(const std::shared_ptr<const MessageT> & msg)
|
|
||||||
{
|
|
||||||
if (!enabled_) {
|
|
||||||
RCLCPP_WARN(
|
|
||||||
logger_,
|
|
||||||
"Trying to publish message on the topic '%s', but the publisher is not activated",
|
|
||||||
this->get_topic_name());
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
rclcpp::Publisher<MessageT, Alloc>::publish(*msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Skip deprecated attribute in windows, as it raise a warning in template specialization.
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
[[deprecated(
|
|
||||||
"Use publish(*msg). Check against nullptr before calling if necessary.")]]
|
|
||||||
#endif
|
|
||||||
virtual void
|
|
||||||
publish(const MessageT * msg)
|
|
||||||
{
|
|
||||||
if (!msg) {
|
|
||||||
throw std::runtime_error("msg argument is nullptr");
|
|
||||||
}
|
|
||||||
this->publish(*msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if !defined(_WIN32)
|
|
||||||
# pragma GCC diagnostic pop
|
|
||||||
#endif
|
|
||||||
|
|
||||||
virtual void
|
virtual void
|
||||||
on_activate()
|
on_activate()
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,17 +31,7 @@
|
||||||
#include "rclcpp/node_interfaces/node_clock.hpp"
|
#include "rclcpp/node_interfaces/node_clock.hpp"
|
||||||
#include "rclcpp/node_interfaces/node_graph.hpp"
|
#include "rclcpp/node_interfaces/node_graph.hpp"
|
||||||
#include "rclcpp/node_interfaces/node_logging.hpp"
|
#include "rclcpp/node_interfaces/node_logging.hpp"
|
||||||
// When compiling this file, Windows produces a deprecation warning for the
|
|
||||||
// deprecated function prototype of NodeParameters::register_param_change_callback().
|
|
||||||
// Other compilers do not.
|
|
||||||
#if defined(_WIN32)
|
|
||||||
# pragma warning(push)
|
|
||||||
# pragma warning(disable: 4996)
|
|
||||||
#endif
|
|
||||||
#include "rclcpp/node_interfaces/node_parameters.hpp"
|
#include "rclcpp/node_interfaces/node_parameters.hpp"
|
||||||
#if defined(_WIN32)
|
|
||||||
# pragma warning(pop)
|
|
||||||
#endif
|
|
||||||
#include "rclcpp/node_interfaces/node_services.hpp"
|
#include "rclcpp/node_interfaces/node_services.hpp"
|
||||||
#include "rclcpp/node_interfaces/node_time_source.hpp"
|
#include "rclcpp/node_interfaces/node_time_source.hpp"
|
||||||
#include "rclcpp/node_interfaces/node_timers.hpp"
|
#include "rclcpp/node_interfaces/node_timers.hpp"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue