Skip to content

Commit ab4ff32

Browse files
author
bpwilcox
authored
Merge pull request #1 from mjeronimo/mjeronimo/address-review-feedback
Address code review feedback
2 parents 8fb32de + 60533db commit ab4ff32

File tree

6 files changed

+101
-96
lines changed

6 files changed

+101
-96
lines changed

rclcpp/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ set(${PROJECT_NAME}_SRCS
7979
src/rclcpp/parameter.cpp
8080
src/rclcpp/parameter_value.cpp
8181
src/rclcpp/parameter_client.cpp
82+
src/rclcpp/parameter_event_monitor.cpp
8283
src/rclcpp/parameter_events_filter.cpp
83-
src/rclcpp/parameter_events_subscriber.cpp
8484
src/rclcpp/parameter_map.cpp
8585
src/rclcpp/parameter_service.cpp
8686
src/rclcpp/publisher_base.cpp

rclcpp/include/rclcpp/parameter_events_subscriber.hpp rclcpp/include/rclcpp/parameter_event_monitor.hpp

+31-24
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,16 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

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_
1717

1818
#include <list>
1919
#include <memory>
2020
#include <string>
21-
#include <utility>
2221
#include <unordered_map>
22+
#include <utility>
2323
#include <vector>
2424

25-
#include "rcl_interfaces/msg/parameter_event.hpp"
2625
#include "rclcpp/create_subscription.hpp"
2726
#include "rclcpp/node_interfaces/get_node_base_interface.hpp"
2827
#include "rclcpp/node_interfaces/get_node_logging_interface.hpp"
@@ -33,6 +32,7 @@
3332
#include "rclcpp/parameter.hpp"
3433
#include "rclcpp/qos.hpp"
3534
#include "rclcpp/subscription.hpp"
35+
#include "rcl_interfaces/msg/parameter_event.hpp"
3636

3737
namespace rclcpp
3838
{
@@ -58,12 +58,16 @@ struct ParameterEventCallbackHandle
5858
ParameterEventCallbackType callback;
5959
};
6060

61-
class ParameterEventsSubscriber
61+
class ParameterEventMonitor
6262
{
6363
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+
*/
6569
template<typename NodeT>
66-
ParameterEventsSubscriber(
70+
ParameterEventMonitor(
6771
NodeT node,
6872
const rclcpp::QoS & qos =
6973
rclcpp::QoS(rclcpp::QoSInitialization::from_rmw(rmw_qos_profile_parameter_events)))
@@ -74,26 +78,27 @@ class ParameterEventsSubscriber
7478

7579
event_subscription_ = rclcpp::create_subscription<rcl_interfaces::msg::ParameterEvent>(
7680
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));
7882
}
7983

8084
using ParameterEventCallbackType =
8185
ParameterEventCallbackHandle::ParameterEventCallbackType;
8286

83-
/// Set a custom callback for parameter events.
87+
/// Set a callback for all parameter events.
8488
/**
85-
* Multiple callbacks are allowed.
89+
* This function may be called multiple times to set multiple parameter event callbacks.
8690
*
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.
8893
*/
8994
RCLCPP_PUBLIC
9095
ParameterEventCallbackHandle::SharedPtr
9196
add_parameter_event_callback(
9297
ParameterEventCallbackType callback);
9398

94-
/// Remove parameter event callback.
99+
/// Remove parameter event callback registered with add_parameter_event_callback.
95100
/**
96-
* Calling this function will set the event callback to nullptr.
101+
* \param[in] handle Pointer to the handle for the callback to remove.
97102
*/
98103
RCLCPP_PUBLIC
99104
void
@@ -102,13 +107,14 @@ class ParameterEventsSubscriber
102107

103108
using ParameterCallbackType = ParameterCallbackHandle::ParameterCallbackType;
104109

105-
/// Add a custom callback for a specified parameter.
110+
/// Add a callback for a specified parameter.
106111
/**
107112
* If a node_name is not provided, defaults to the current node.
108113
*
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.
111116
* \param[in] node_name Name of node which hosts the parameter.
117+
* \returns A handle used to refer to the callback.
112118
*/
113119
RCLCPP_PUBLIC
114120
ParameterCallbackHandle::SharedPtr
@@ -117,7 +123,7 @@ class ParameterEventsSubscriber
117123
ParameterCallbackType callback,
118124
const std::string & node_name = "");
119125

120-
/// Remove a custom callback for a specified parameter given its callback handle.
126+
/// Remove a parameter callback registered with add_parameter_callback.
121127
/**
122128
* The parameter name and node name are inspected from the callback handle. The callback handle
123129
* is erased from the list of callback handles on the {parameter_name, node_name} in the map.
@@ -130,15 +136,16 @@ class ParameterEventsSubscriber
130136
remove_parameter_callback(
131137
const ParameterCallbackHandle * const handle);
132138

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.
134140
/**
135141
* If a node_name is not provided, defaults to the current node.
136142
*
137143
* \param[in] event Event msg to be inspected.
138144
* \param[out] parameter Reference to rclcpp::Parameter to be assigned.
139145
* \param[in] parameter_name Name of parameter.
140146
* \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.
142149
*/
143150
RCLCPP_PUBLIC
144151
static bool
@@ -148,7 +155,7 @@ class ParameterEventsSubscriber
148155
const std::string parameter_name,
149156
const std::string node_name = "");
150157

151-
/// Get a rclcpp::Parameter from parameter event
158+
/// Get an rclcpp::Parameter from parameter event
152159
/**
153160
* If a node_name is not provided, defaults to the current node.
154161
*
@@ -159,7 +166,7 @@ class ParameterEventsSubscriber
159166
* \param[in] event Event msg to be inspected.
160167
* \param[in] parameter_name Name of parameter.
161168
* \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.
163170
*/
164171
RCLCPP_PUBLIC
165172
static rclcpp::Parameter
@@ -171,7 +178,7 @@ class ParameterEventsSubscriber
171178
/// Get all rclcpp::Parameter values from a parameter event
172179
/**
173180
* \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.
175182
*/
176183
RCLCPP_PUBLIC
177184
static std::vector<rclcpp::Parameter>
@@ -215,7 +222,7 @@ class ParameterEventsSubscriber
215222
};
216223
// *INDENT-ON*
217224

218-
// Map container for registered parameters.
225+
// Map container for registered parameters
219226
std::unordered_map<
220227
std::pair<std::string, std::string>,
221228
CallbacksContainerType,
@@ -231,4 +238,4 @@ class ParameterEventsSubscriber
231238

232239
} // namespace rclcpp
233240

234-
#endif // RCLCPP__PARAMETER_EVENTS_SUBSCRIBER_HPP_
241+
#endif // RCLCPP__PARAMETER_EVENT_MONITOR_HPP_

rclcpp/include/rclcpp/rclcpp.hpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -147,15 +147,15 @@
147147
#include "rclcpp/guard_condition.hpp"
148148
#include "rclcpp/logging.hpp"
149149
#include "rclcpp/node.hpp"
150-
#include "rclcpp/parameter.hpp"
151150
#include "rclcpp/parameter_client.hpp"
151+
#include "rclcpp/parameter_event_monitor.hpp"
152+
#include "rclcpp/parameter.hpp"
152153
#include "rclcpp/parameter_service.hpp"
153-
#include "rclcpp/parameter_events_subscriber.hpp"
154154
#include "rclcpp/rate.hpp"
155155
#include "rclcpp/time.hpp"
156156
#include "rclcpp/utilities.hpp"
157157
#include "rclcpp/visibility_control.hpp"
158-
#include "rclcpp/wait_set.hpp"
159158
#include "rclcpp/waitable.hpp"
159+
#include "rclcpp/wait_set.hpp"
160160

161161
#endif // RCLCPP__RCLCPP_HPP_

rclcpp/src/rclcpp/parameter_events_subscriber.cpp rclcpp/src/rclcpp/parameter_event_monitor.cpp

+10-10
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
#include <utility>
2020
#include <vector>
2121

22-
#include "rclcpp/parameter_events_subscriber.hpp"
22+
#include "rclcpp/parameter_event_monitor.hpp"
2323
#include "rcpputils/join.hpp"
2424

2525
namespace rclcpp
2626
{
2727

2828
ParameterEventCallbackHandle::SharedPtr
29-
ParameterEventsSubscriber::add_parameter_event_callback(
29+
ParameterEventMonitor::add_parameter_event_callback(
3030
ParameterEventCallbackType callback)
3131
{
3232
std::lock_guard<std::recursive_mutex> lock(mutex_);
@@ -55,7 +55,7 @@ struct HandleCompare
5555
};
5656

5757
void
58-
ParameterEventsSubscriber::remove_parameter_event_callback(
58+
ParameterEventMonitor::remove_parameter_event_callback(
5959
const ParameterEventCallbackHandle * const handle)
6060
{
6161
std::lock_guard<std::recursive_mutex> lock(mutex_);
@@ -71,7 +71,7 @@ ParameterEventsSubscriber::remove_parameter_event_callback(
7171
}
7272

7373
ParameterCallbackHandle::SharedPtr
74-
ParameterEventsSubscriber::add_parameter_callback(
74+
ParameterEventMonitor::add_parameter_callback(
7575
const std::string & parameter_name,
7676
ParameterCallbackType callback,
7777
const std::string & node_name)
@@ -90,7 +90,7 @@ ParameterEventsSubscriber::add_parameter_callback(
9090
}
9191

9292
void
93-
ParameterEventsSubscriber::remove_parameter_callback(
93+
ParameterEventMonitor::remove_parameter_callback(
9494
const ParameterCallbackHandle * const handle)
9595
{
9696
std::lock_guard<std::recursive_mutex> lock(mutex_);
@@ -110,7 +110,7 @@ ParameterEventsSubscriber::remove_parameter_callback(
110110
}
111111

112112
bool
113-
ParameterEventsSubscriber::get_parameter_from_event(
113+
ParameterEventMonitor::get_parameter_from_event(
114114
const rcl_interfaces::msg::ParameterEvent & event,
115115
rclcpp::Parameter & parameter,
116116
const std::string parameter_name,
@@ -138,7 +138,7 @@ ParameterEventsSubscriber::get_parameter_from_event(
138138
}
139139

140140
rclcpp::Parameter
141-
ParameterEventsSubscriber::get_parameter_from_event(
141+
ParameterEventMonitor::get_parameter_from_event(
142142
const rcl_interfaces::msg::ParameterEvent & event,
143143
const std::string parameter_name,
144144
const std::string node_name)
@@ -153,7 +153,7 @@ ParameterEventsSubscriber::get_parameter_from_event(
153153
}
154154

155155
std::vector<rclcpp::Parameter>
156-
ParameterEventsSubscriber::get_parameters_from_event(
156+
ParameterEventMonitor::get_parameters_from_event(
157157
const rcl_interfaces::msg::ParameterEvent & event)
158158
{
159159
std::vector<rclcpp::Parameter> params;
@@ -170,7 +170,7 @@ ParameterEventsSubscriber::get_parameters_from_event(
170170
}
171171

172172
void
173-
ParameterEventsSubscriber::event_callback(
173+
ParameterEventMonitor::event_callback(
174174
const rcl_interfaces::msg::ParameterEvent::SharedPtr event)
175175
{
176176
std::lock_guard<std::recursive_mutex> lock(mutex_);
@@ -200,7 +200,7 @@ ParameterEventsSubscriber::event_callback(
200200
}
201201

202202
std::string
203-
ParameterEventsSubscriber::resolve_path(const std::string & path)
203+
ParameterEventMonitor::resolve_path(const std::string & path)
204204
{
205205
std::string full_path;
206206

rclcpp/test/rclcpp/CMakeLists.txt

+4-4
Original file line numberDiff line numberDiff line change
@@ -323,15 +323,15 @@ if(TARGET test_parameter)
323323
)
324324
target_link_libraries(test_parameter ${PROJECT_NAME})
325325
endif()
326-
ament_add_gtest(test_parameter_events_subscriber test_parameter_events_subscriber.cpp)
327-
if(TARGET test_parameter_events_subscriber)
328-
ament_target_dependencies(test_parameter_events_subscriber
326+
ament_add_gtest(test_parameter_event_monitor test_parameter_event_monitor.cpp)
327+
if(TARGET test_parameter_event_monitor)
328+
ament_target_dependencies(test_parameter_event_monitor
329329
"rcl_interfaces"
330330
"rmw"
331331
"rosidl_generator_cpp"
332332
"rosidl_typesupport_cpp"
333333
)
334-
target_link_libraries(test_parameter_events_subscriber ${PROJECT_NAME})
334+
target_link_libraries(test_parameter_event_monitor ${PROJECT_NAME})
335335
endif()
336336
ament_add_gtest(test_parameter_map test_parameter_map.cpp)
337337
if(TARGET test_parameter_map)

0 commit comments

Comments
 (0)