15#ifndef CONTROLLER_INTERFACE__HELPERS_HPP_
16#define CONTROLLER_INTERFACE__HELPERS_HPP_
24#include "hardware_interface/helpers.hpp"
26namespace controller_interface
45bool get_ordered_interfaces(
46 std::vector<T> & unordered_interfaces,
const std::vector<std::string> & ordered_names,
47 const std::string & interface_type, std::vector<std::reference_wrapper<T>> & ordered_interfaces)
49 ordered_interfaces.reserve(ordered_names.size());
50 for (
const auto & name : ordered_names)
52 for (
auto & interface : unordered_interfaces)
54 if (!interface_type.empty())
59 ((name == interface.get_prefix_name()) &&
60 (interface_type == interface.get_interface_name())) ||
61 ((name +
"/" + interface_type) == interface.get_name()))
63 ordered_interfaces.push_back(std::ref(interface));
68 if (name == interface.get_name())
70 ordered_interfaces.push_back(std::ref(interface));
76 return ordered_names.size() == ordered_interfaces.size();
79inline bool interface_list_contains_interface_type(
80 const std::vector<std::string> & interface_type_list,
const std::string & interface_type)
82 return std::find(interface_type_list.begin(), interface_type_list.end(), interface_type) !=
83 interface_type_list.end();
88 "Use ros2_control::add_item method instead. This method will be removed by the ROS 2 Kilted "
89 "Kaiju release.")]]
void
90add_element_to_list(std::vector<T> & list,
const T & element)
92 ros2_control::add_item(list, element);