Skip to content

Commit 07cb443

Browse files
authored
[rclcpp_components] Enable intra-process comm via LoadNode request. (#871)
Look for a 'use_intra_process_comms' boolean in extra_arguments. Signed-off-by: Michel Hidalgo <[email protected]>
1 parent b8f7237 commit 07cb443

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

rclcpp_components/src/component_manager.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,17 @@ ComponentManager::OnLoadNode(
165165
.parameter_overrides(parameters)
166166
.arguments(remap_rules);
167167

168+
for (const auto & a : request->extra_arguments) {
169+
const rclcpp::Parameter extra_argument = rclcpp::Parameter::from_parameter_msg(a);
170+
if (extra_argument.get_name() == "use_intra_process_comms") {
171+
if (extra_argument.get_type() != rclcpp::ParameterType::PARAMETER_BOOL) {
172+
throw ComponentManagerException(
173+
"Extra component argument 'use_intra_process_comms' must be a boolean");
174+
}
175+
options.use_intra_process_comms(extra_argument.get_value<bool>());
176+
}
177+
}
178+
168179
auto node_id = unique_id++;
169180

170181
if (0 == node_id) {

0 commit comments

Comments
 (0)