add callback group as member variable and constructor arg (#811)

Signed-off-by: bpwilcox <bpwilcox@eng.ucsd.edu>

remove callback group as member variable
This commit is contained in:
bpwilcox 2019-08-21 17:02:37 -07:00 committed by William Woodall
parent 4dbc7192d2
commit ccd5b49186
2 changed files with 22 additions and 14 deletions

View file

@ -53,19 +53,22 @@ public:
const rclcpp::node_interfaces::NodeGraphInterface::SharedPtr node_graph_interface, const rclcpp::node_interfaces::NodeGraphInterface::SharedPtr node_graph_interface,
const rclcpp::node_interfaces::NodeServicesInterface::SharedPtr node_services_interface, const rclcpp::node_interfaces::NodeServicesInterface::SharedPtr node_services_interface,
const std::string & remote_node_name = "", const std::string & remote_node_name = "",
const rmw_qos_profile_t & qos_profile = rmw_qos_profile_parameters); const rmw_qos_profile_t & qos_profile = rmw_qos_profile_parameters,
rclcpp::callback_group::CallbackGroup::SharedPtr group = nullptr);
RCLCPP_PUBLIC RCLCPP_PUBLIC
AsyncParametersClient( AsyncParametersClient(
const rclcpp::Node::SharedPtr node, const rclcpp::Node::SharedPtr node,
const std::string & remote_node_name = "", const std::string & remote_node_name = "",
const rmw_qos_profile_t & qos_profile = rmw_qos_profile_parameters); const rmw_qos_profile_t & qos_profile = rmw_qos_profile_parameters,
rclcpp::callback_group::CallbackGroup::SharedPtr group = nullptr);
RCLCPP_PUBLIC RCLCPP_PUBLIC
AsyncParametersClient( AsyncParametersClient(
rclcpp::Node * node, rclcpp::Node * node,
const std::string & remote_node_name = "", const std::string & remote_node_name = "",
const rmw_qos_profile_t & qos_profile = rmw_qos_profile_parameters); const rmw_qos_profile_t & qos_profile = rmw_qos_profile_parameters,
rclcpp::callback_group::CallbackGroup::SharedPtr group = nullptr);
RCLCPP_PUBLIC RCLCPP_PUBLIC
std::shared_future<std::vector<rclcpp::Parameter>> std::shared_future<std::vector<rclcpp::Parameter>>

View file

@ -30,7 +30,8 @@ AsyncParametersClient::AsyncParametersClient(
const rclcpp::node_interfaces::NodeGraphInterface::SharedPtr node_graph_interface, const rclcpp::node_interfaces::NodeGraphInterface::SharedPtr node_graph_interface,
const rclcpp::node_interfaces::NodeServicesInterface::SharedPtr node_services_interface, const rclcpp::node_interfaces::NodeServicesInterface::SharedPtr node_services_interface,
const std::string & remote_node_name, const std::string & remote_node_name,
const rmw_qos_profile_t & qos_profile) const rmw_qos_profile_t & qos_profile,
rclcpp::callback_group::CallbackGroup::SharedPtr group)
: node_topics_interface_(node_topics_interface) : node_topics_interface_(node_topics_interface)
{ {
if (remote_node_name != "") { if (remote_node_name != "") {
@ -51,7 +52,7 @@ AsyncParametersClient::AsyncParametersClient(
remote_node_name_ + "/" + parameter_service_names::get_parameters, remote_node_name_ + "/" + parameter_service_names::get_parameters,
options); options);
auto get_parameters_base = std::dynamic_pointer_cast<ClientBase>(get_parameters_client_); auto get_parameters_base = std::dynamic_pointer_cast<ClientBase>(get_parameters_client_);
node_services_interface->add_client(get_parameters_base, nullptr); node_services_interface->add_client(get_parameters_base, group);
get_parameter_types_client_ = Client<rcl_interfaces::srv::GetParameterTypes>::make_shared( get_parameter_types_client_ = Client<rcl_interfaces::srv::GetParameterTypes>::make_shared(
node_base_interface.get(), node_base_interface.get(),
@ -60,7 +61,7 @@ AsyncParametersClient::AsyncParametersClient(
options); options);
auto get_parameter_types_base = auto get_parameter_types_base =
std::dynamic_pointer_cast<ClientBase>(get_parameter_types_client_); std::dynamic_pointer_cast<ClientBase>(get_parameter_types_client_);
node_services_interface->add_client(get_parameter_types_base, nullptr); node_services_interface->add_client(get_parameter_types_base, group);
set_parameters_client_ = Client<rcl_interfaces::srv::SetParameters>::make_shared( set_parameters_client_ = Client<rcl_interfaces::srv::SetParameters>::make_shared(
node_base_interface.get(), node_base_interface.get(),
@ -68,7 +69,7 @@ AsyncParametersClient::AsyncParametersClient(
remote_node_name_ + "/" + parameter_service_names::set_parameters, remote_node_name_ + "/" + parameter_service_names::set_parameters,
options); options);
auto set_parameters_base = std::dynamic_pointer_cast<ClientBase>(set_parameters_client_); auto set_parameters_base = std::dynamic_pointer_cast<ClientBase>(set_parameters_client_);
node_services_interface->add_client(set_parameters_base, nullptr); node_services_interface->add_client(set_parameters_base, group);
set_parameters_atomically_client_ = set_parameters_atomically_client_ =
Client<rcl_interfaces::srv::SetParametersAtomically>::make_shared( Client<rcl_interfaces::srv::SetParametersAtomically>::make_shared(
@ -78,7 +79,7 @@ AsyncParametersClient::AsyncParametersClient(
options); options);
auto set_parameters_atomically_base = std::dynamic_pointer_cast<ClientBase>( auto set_parameters_atomically_base = std::dynamic_pointer_cast<ClientBase>(
set_parameters_atomically_client_); set_parameters_atomically_client_);
node_services_interface->add_client(set_parameters_atomically_base, nullptr); node_services_interface->add_client(set_parameters_atomically_base, group);
list_parameters_client_ = Client<rcl_interfaces::srv::ListParameters>::make_shared( list_parameters_client_ = Client<rcl_interfaces::srv::ListParameters>::make_shared(
node_base_interface.get(), node_base_interface.get(),
@ -86,7 +87,7 @@ AsyncParametersClient::AsyncParametersClient(
remote_node_name_ + "/" + parameter_service_names::list_parameters, remote_node_name_ + "/" + parameter_service_names::list_parameters,
options); options);
auto list_parameters_base = std::dynamic_pointer_cast<ClientBase>(list_parameters_client_); auto list_parameters_base = std::dynamic_pointer_cast<ClientBase>(list_parameters_client_);
node_services_interface->add_client(list_parameters_base, nullptr); node_services_interface->add_client(list_parameters_base, group);
describe_parameters_client_ = Client<rcl_interfaces::srv::DescribeParameters>::make_shared( describe_parameters_client_ = Client<rcl_interfaces::srv::DescribeParameters>::make_shared(
node_base_interface.get(), node_base_interface.get(),
@ -95,33 +96,37 @@ AsyncParametersClient::AsyncParametersClient(
options); options);
auto describe_parameters_base = auto describe_parameters_base =
std::dynamic_pointer_cast<ClientBase>(describe_parameters_client_); std::dynamic_pointer_cast<ClientBase>(describe_parameters_client_);
node_services_interface->add_client(describe_parameters_base, nullptr); node_services_interface->add_client(describe_parameters_base, group);
} }
AsyncParametersClient::AsyncParametersClient( AsyncParametersClient::AsyncParametersClient(
const rclcpp::Node::SharedPtr node, const rclcpp::Node::SharedPtr node,
const std::string & remote_node_name, const std::string & remote_node_name,
const rmw_qos_profile_t & qos_profile) const rmw_qos_profile_t & qos_profile,
rclcpp::callback_group::CallbackGroup::SharedPtr group)
: AsyncParametersClient( : AsyncParametersClient(
node->get_node_base_interface(), node->get_node_base_interface(),
node->get_node_topics_interface(), node->get_node_topics_interface(),
node->get_node_graph_interface(), node->get_node_graph_interface(),
node->get_node_services_interface(), node->get_node_services_interface(),
remote_node_name, remote_node_name,
qos_profile) qos_profile,
group)
{} {}
AsyncParametersClient::AsyncParametersClient( AsyncParametersClient::AsyncParametersClient(
rclcpp::Node * node, rclcpp::Node * node,
const std::string & remote_node_name, const std::string & remote_node_name,
const rmw_qos_profile_t & qos_profile) const rmw_qos_profile_t & qos_profile,
rclcpp::callback_group::CallbackGroup::SharedPtr group)
: AsyncParametersClient( : AsyncParametersClient(
node->get_node_base_interface(), node->get_node_base_interface(),
node->get_node_topics_interface(), node->get_node_topics_interface(),
node->get_node_graph_interface(), node->get_node_graph_interface(),
node->get_node_services_interface(), node->get_node_services_interface(),
remote_node_name, remote_node_name,
qos_profile) qos_profile,
group)
{} {}
std::shared_future<std::vector<rclcpp::Parameter>> std::shared_future<std::vector<rclcpp::Parameter>>