12
12
// See the License for the specific language governing permissions and
13
13
// limitations under the License.
14
14
15
- #ifndef RCLCPP__PARAMETER_EVENTS_SUBSCRIBER_HPP_
16
- #define RCLCPP__PARAMETER_EVENTS_SUBSCRIBER_HPP_
15
+ #ifndef RCLCPP__PARAMETER_EVENT_MONITOR_HPP_
16
+ #define RCLCPP__PARAMETER_EVENT_MONITOR_HPP_
17
17
18
18
#include < list>
19
19
#include < memory>
20
20
#include < string>
21
- #include < utility>
22
21
#include < unordered_map>
22
+ #include < utility>
23
23
#include < vector>
24
24
25
- #include " rcl_interfaces/msg/parameter_event.hpp"
26
25
#include " rclcpp/create_subscription.hpp"
27
26
#include " rclcpp/node_interfaces/get_node_base_interface.hpp"
28
27
#include " rclcpp/node_interfaces/get_node_logging_interface.hpp"
33
32
#include " rclcpp/parameter.hpp"
34
33
#include " rclcpp/qos.hpp"
35
34
#include " rclcpp/subscription.hpp"
35
+ #include " rcl_interfaces/msg/parameter_event.hpp"
36
36
37
37
namespace rclcpp
38
38
{
@@ -58,12 +58,16 @@ struct ParameterEventCallbackHandle
58
58
ParameterEventCallbackType callback;
59
59
};
60
60
61
- class ParameterEventsSubscriber
61
+ class ParameterEventMonitor
62
62
{
63
63
public:
64
- // / Construct a subscriber to parameter events
64
+ // / Construct a parameter events monitor.
65
+ /* *
66
+ * \param[in] node The node to use to create any required subscribers.
67
+ * \param[in] qos The QoS settings to use for any subscriptions.
68
+ */
65
69
template <typename NodeT>
66
- ParameterEventsSubscriber (
70
+ ParameterEventMonitor (
67
71
NodeT node,
68
72
const rclcpp::QoS & qos =
69
73
rclcpp::QoS (rclcpp::QoSInitialization::from_rmw(rmw_qos_profile_parameter_events)))
@@ -74,26 +78,27 @@ class ParameterEventsSubscriber
74
78
75
79
event_subscription_ = rclcpp::create_subscription<rcl_interfaces::msg::ParameterEvent>(
76
80
node_topics, " /parameter_events" , qos,
77
- std::bind (&ParameterEventsSubscriber ::event_callback, this , std::placeholders::_1));
81
+ std::bind (&ParameterEventMonitor ::event_callback, this , std::placeholders::_1));
78
82
}
79
83
80
84
using ParameterEventCallbackType =
81
85
ParameterEventCallbackHandle::ParameterEventCallbackType;
82
86
83
- // / Set a custom callback for parameter events.
87
+ // / Set a callback for all parameter events.
84
88
/* *
85
- * Multiple callbacks are allowed .
89
+ * This function may be called multiple times to set multiple parameter event callbacks .
86
90
*
87
- * \param[in] callback Function callback to be evaluated on event.
91
+ * \param[in] callback Function callback to be invoked on parameter updates.
92
+ * \returns A handle used to refer to the callback.
88
93
*/
89
94
RCLCPP_PUBLIC
90
95
ParameterEventCallbackHandle::SharedPtr
91
96
add_parameter_event_callback (
92
97
ParameterEventCallbackType callback);
93
98
94
- // / Remove parameter event callback.
99
+ // / Remove parameter event callback registered with add_parameter_event_callback .
95
100
/* *
96
- * Calling this function will set the event callback to nullptr .
101
+ * \param[in] handle Pointer to the handle for the callback to remove .
97
102
*/
98
103
RCLCPP_PUBLIC
99
104
void
@@ -102,13 +107,14 @@ class ParameterEventsSubscriber
102
107
103
108
using ParameterCallbackType = ParameterCallbackHandle::ParameterCallbackType;
104
109
105
- // / Add a custom callback for a specified parameter.
110
+ // / Add a callback for a specified parameter.
106
111
/* *
107
112
* If a node_name is not provided, defaults to the current node.
108
113
*
109
- * \param[in] parameter_name Name of parameter.
110
- * \param[in] callback Function callback to be evaluated upon parameter event .
114
+ * \param[in] parameter_name Name of parameter to monitor .
115
+ * \param[in] callback Function callback to be invoked upon parameter update .
111
116
* \param[in] node_name Name of node which hosts the parameter.
117
+ * \returns A handle used to refer to the callback.
112
118
*/
113
119
RCLCPP_PUBLIC
114
120
ParameterCallbackHandle::SharedPtr
@@ -117,7 +123,7 @@ class ParameterEventsSubscriber
117
123
ParameterCallbackType callback,
118
124
const std::string & node_name = " " );
119
125
120
- // / Remove a custom callback for a specified parameter given its callback handle .
126
+ // / Remove a parameter callback registered with add_parameter_callback .
121
127
/* *
122
128
* The parameter name and node name are inspected from the callback handle. The callback handle
123
129
* is erased from the list of callback handles on the {parameter_name, node_name} in the map.
@@ -130,15 +136,16 @@ class ParameterEventsSubscriber
130
136
remove_parameter_callback (
131
137
const ParameterCallbackHandle * const handle);
132
138
133
- // / Get a rclcpp::Parameter from parameter event, return true if parameter name & node in event.
139
+ // / Get an rclcpp::Parameter from a parameter event.
134
140
/* *
135
141
* If a node_name is not provided, defaults to the current node.
136
142
*
137
143
* \param[in] event Event msg to be inspected.
138
144
* \param[out] parameter Reference to rclcpp::Parameter to be assigned.
139
145
* \param[in] parameter_name Name of parameter.
140
146
* \param[in] node_name Name of node which hosts the parameter.
141
- * \returns true if requested parameter name & node is in event, false otherwise
147
+ * \returns Output parameter is set with requested parameter info and returns true if
148
+ * requested parameter name and node is in event. Otherwise, returns false.
142
149
*/
143
150
RCLCPP_PUBLIC
144
151
static bool
@@ -148,7 +155,7 @@ class ParameterEventsSubscriber
148
155
const std::string parameter_name,
149
156
const std::string node_name = " " );
150
157
151
- // / Get a rclcpp::Parameter from parameter event
158
+ // / Get an rclcpp::Parameter from parameter event
152
159
/* *
153
160
* If a node_name is not provided, defaults to the current node.
154
161
*
@@ -159,7 +166,7 @@ class ParameterEventsSubscriber
159
166
* \param[in] event Event msg to be inspected.
160
167
* \param[in] parameter_name Name of parameter.
161
168
* \param[in] node_name Name of node which hosts the parameter.
162
- * \returns The resultant rclcpp::Parameter from the event
169
+ * \returns The resultant rclcpp::Parameter from the event.
163
170
*/
164
171
RCLCPP_PUBLIC
165
172
static rclcpp::Parameter
@@ -171,7 +178,7 @@ class ParameterEventsSubscriber
171
178
// / Get all rclcpp::Parameter values from a parameter event
172
179
/* *
173
180
* \param[in] event Event msg to be inspected.
174
- * \returns A vector rclcpp::Parameter values from the event
181
+ * \returns A vector rclcpp::Parameter values from the event.
175
182
*/
176
183
RCLCPP_PUBLIC
177
184
static std::vector<rclcpp::Parameter>
@@ -215,7 +222,7 @@ class ParameterEventsSubscriber
215
222
};
216
223
// *INDENT-ON*
217
224
218
- // Map container for registered parameters.
225
+ // Map container for registered parameters
219
226
std::unordered_map<
220
227
std::pair<std::string, std::string>,
221
228
CallbacksContainerType,
@@ -231,4 +238,4 @@ class ParameterEventsSubscriber
231
238
232
239
} // namespace rclcpp
233
240
234
- #endif // RCLCPP__PARAMETER_EVENTS_SUBSCRIBER_HPP_
241
+ #endif // RCLCPP__PARAMETER_EVENT_MONITOR_HPP_
0 commit comments