Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions rclc/include/rclc/node.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ extern "C"
{
#endif
#include <rcl/node.h>
#include <rcl/logging.h>
#include <rcl/logging_rosout.h>
#include <rclc/types.h>

#include <rclc/init.h>
Expand Down
18 changes: 18 additions & 0 deletions rclc/src/rclc/node.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,24 @@ rclc_node_init_with_options(
node_ops);
if (rc != RCL_RET_OK) {
PRINT_RCLC_WARN(rclc_node_init_with_options, rcl_node_init);
return rc;
}

// The initialization for the rosout publisher
if (rcl_logging_rosout_enabled() && node_ops->enable_rosout) {
rc = rcl_logging_rosout_init_publisher_for_node(node);
if (rc != RCL_RET_OK) {
PRINT_RCLC_WARN(
rclc_node_init_with_options,
rcl_logging_rosout_init_publisher_for_node);
if (rcl_logging_rosout_fini_publisher_for_node(node) != RCL_RET_OK) {
PRINT_RCLC_WARN(
rclc_node_init_with_options,
rcl_logging_rosout_fini_publisher_for_node);
}
return rc;
}
}

return rc;
}
8 changes: 8 additions & 0 deletions rclc/test/rclc/test_action_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,10 @@ TEST(Test, rclc_action_client) {
// clean up
rc = rclc_action_client_fini(&action_client, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down Expand Up @@ -245,6 +249,10 @@ class ActionClientTest : public ::testing::Test

rc = rclc_action_client_fini(&action_client, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down
8 changes: 8 additions & 0 deletions rclc/test/rclc/test_action_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,10 @@ TEST(Test, rclc_action_server) {
// clean up
rc = rclc_action_server_fini(&action_server, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down Expand Up @@ -222,6 +226,10 @@ class ActionServerTest : public ::testing::Test

rc = rclc_action_server_fini(&action_server, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down
12 changes: 12 additions & 0 deletions rclc/test/rclc/test_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ TEST(Test, rclc_client_init_default) {
// clean up
rc = rcl_client_fini(&client, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down Expand Up @@ -133,6 +137,10 @@ TEST(Test, rclc_client_init_best_effort) {
// clean up
rc = rcl_client_fini(&client, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down Expand Up @@ -200,6 +208,10 @@ TEST(Test, rclc_client_init_qos) {
// clean up
rc = rcl_client_fini(&client, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down
13 changes: 13 additions & 0 deletions rclc/test/rclc/test_executor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <vector>

#include "rclc/executor.h"
#include "rclc/node.h"
#include "osrf_testing_tools_cpp/scope_exit.hpp"
#include "rcutils/time.h"

Expand Down Expand Up @@ -545,6 +546,10 @@ class TestDefaultExecutor : public ::testing::Test
rcl_node_options_t node_options = rcl_node_get_default_options();
ret = rcl_node_init(&this->node, name, "", &this->context, &node_options);
ASSERT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
if (rcl_logging_rosout_enabled() && node_options.enable_rosout) {
ret = rcl_logging_rosout_init_publisher_for_node(&this->node);
ASSERT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
}
const rcl_node_options_t * node_ops = rcl_node_get_options(&this->node);
this->allocator_ptr = &node_ops->allocator;

Expand Down Expand Up @@ -591,6 +596,14 @@ class TestDefaultExecutor : public ::testing::Test
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
ret = rcl_clock_fini(&this->clock);
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
if (rcl_logging_rosout_enabled()) {
ret = rcl_logging_rosout_fini_publisher_for_node(&this->node);
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
}
if (rcl_logging_rosout_enabled()) {
ret = rcl_logging_rosout_fini_publisher_for_node(&this->node);
EXPECT_EQ(RCL_RET_OK, ret);
}
ret = rcl_node_fini(&this->node);
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
ret = rcl_shutdown(&this->context);
Expand Down
12 changes: 12 additions & 0 deletions rclc/test/rclc/test_node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ TEST(Test, rclc_node_init_default) {
rcutils_reset_error();

// test case: null pointer for name
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);

Expand All @@ -56,6 +60,10 @@ TEST(Test, rclc_node_init_default) {
rcutils_reset_error();

// clean up
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rcutils_reset_error();
Expand Down Expand Up @@ -106,6 +114,10 @@ TEST(Test, rclc_node_init_with_options) {
EXPECT_EQ(RCL_RET_OK, rc);

// clean up
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rcutils_reset_error();
Expand Down
12 changes: 12 additions & 0 deletions rclc/test/rclc/test_publisher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ TEST(Test, rclc_publisher_init_default) {
// clean up
rc = rcl_publisher_fini(&publisher, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down Expand Up @@ -99,6 +103,10 @@ TEST(Test, rclc_publisher_init_best_effort) {
// clean up
rc = rcl_publisher_fini(&publisher, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down Expand Up @@ -149,6 +157,10 @@ TEST(Test, rclc_publisher_init_qos) {
// clean up
rc = rcl_publisher_fini(&publisher, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down
12 changes: 12 additions & 0 deletions rclc/test/rclc/test_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ TEST(Test, rclc_service_init_default) {
// clean up
rc = rcl_service_fini(&service, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down Expand Up @@ -119,6 +123,10 @@ TEST(Test, rclc_service_init_best_effort) {
// clean up
rc = rcl_service_fini(&service, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down Expand Up @@ -178,6 +186,10 @@ TEST(Test, rclc_service_init_qos) {
// clean up
rc = rcl_service_fini(&service, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down
12 changes: 12 additions & 0 deletions rclc/test/rclc/test_subscription.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ TEST(Test, rclc_subscription_init_default) {
// clean up
rc = rcl_subscription_fini(&subscription, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down Expand Up @@ -98,6 +102,10 @@ TEST(Test, rclc_subscription_init_best_effort) {
// clean up
rc = rcl_subscription_fini(&subscription, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down Expand Up @@ -146,6 +154,10 @@ TEST(Test, rclc_subscription_init_qos) {
// clean up
rc = rcl_subscription_fini(&subscription, &node);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down
4 changes: 4 additions & 0 deletions rclc/test/rclc/test_timer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ TEST(Test, rclc_timer_init_default2) {
// clean up
rc = rcl_timer_fini(&timer);
EXPECT_EQ(RCL_RET_OK, rc);
if (rcl_logging_rosout_enabled()) {
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
EXPECT_EQ(RCL_RET_OK, rc);
}
rc = rcl_node_fini(&node);
EXPECT_EQ(RCL_RET_OK, rc);
rc = rclc_support_fini(&support);
Expand Down
1 change: 1 addition & 0 deletions rclc_examples/src/example_action_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ int main()

// clean up
rclc_executor_fini(&executor);
(void)!rcl_logging_rosout_fini_publisher_for_node(&node);
(void)!rcl_node_fini(&node);

return 0;
Expand Down
1 change: 1 addition & 0 deletions rclc_examples/src/example_action_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ int main()

// clean up
rclc_executor_fini(&executor);
(void)!rcl_logging_rosout_fini_publisher_for_node(&node);
(void)!rcl_node_fini(&node);

return 0;
Expand Down
1 change: 1 addition & 0 deletions rclc_examples/src/example_client_node.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,6 @@ int main(int argc, const char * const * argv)
rclc_executor_spin(&executor);

RCCHECK(rcl_client_fini(&client, &node));
RCCHECK(rcl_logging_rosout_fini_publisher_for_node(&node));
RCCHECK(rcl_node_fini(&node));
}
1 change: 1 addition & 0 deletions rclc_examples/src/example_executor.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ int main(int argc, const char * argv[])
rc += rcl_publisher_fini(&my_pub, &my_node);
rc += rcl_timer_fini(&my_timer);
rc += rcl_subscription_fini(&my_sub, &my_node);
rc += rcl_logging_rosout_fini_publisher_for_node(&my_node);
rc += rcl_node_fini(&my_node);
rc += rclc_support_fini(&support);

Expand Down
11 changes: 11 additions & 0 deletions rclc_examples/src/example_executor_only_rcl.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include <stdio.h>

#include <rclc/executor.h>
#include <rclc/rclc.h>
#include <std_msgs/msg/string.h>

// these data structures for the publisher and subscriber are global, so that
Expand Down Expand Up @@ -83,6 +84,13 @@ int main(int argc, const char * argv[])
printf("Error in rcl_node_init\n");
return -1;
}
if (rcl_logging_rosout_enabled() && node_ops.enable_rosout) {
rc = rcl_logging_rosout_init_publisher_for_node(&my_node);
if (rc != RCL_RET_OK) {
printf("Error in rcl_logging_rosout_init_publisher_for_node\n");
return -1;
}
}

// create a publisher to publish topic 'topic_0' with type std_msg::msg::String
// my_pub is global, so that the timer callback can access this publisher.
Expand Down Expand Up @@ -196,6 +204,9 @@ int main(int argc, const char * argv[])
rc += rcl_publisher_fini(&my_pub, &my_node);
rc += rcl_timer_fini(&my_timer);
rc += rcl_subscription_fini(&my_sub, &my_node);
if (rcl_logging_rosout_enabled()) {
rc += rcl_logging_rosout_fini_publisher_for_node(&my_node);
}
rc += rcl_node_fini(&my_node);
rc += rcl_init_options_fini(&init_options);
std_msgs__msg__String__fini(&pub_msg);
Expand Down
1 change: 1 addition & 0 deletions rclc_examples/src/example_executor_trigger.c
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,7 @@ int main(int argc, const char * argv[])
rc += rcl_timer_fini(&my_int_timer);
rc += rcl_subscription_fini(&my_string_sub, &my_node);
rc += rcl_subscription_fini(&my_int_sub, &my_node);
rc += rcl_logging_rosout_fini_publisher_for_node(&my_node);
rc += rcl_node_fini(&my_node);
rc += rclc_support_fini(&support);

Expand Down
1 change: 1 addition & 0 deletions rclc_examples/src/example_lifecycle_node.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ int main(int argc, const char * argv[])
// Cleanup
printf("cleaning up...\n");
rc = rclc_lifecycle_node_fini(&lifecycle_node, &allocator);
rc += rcl_logging_rosout_fini_publisher_for_node(&my_node);
rc += rcl_node_fini(&my_node);
rc += rclc_executor_fini(&executor);
rc += rclc_support_fini(&support);
Expand Down
1 change: 1 addition & 0 deletions rclc_examples/src/example_parameter_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ int main()
// clean up
rc = rclc_executor_fini(&executor);
rc += rclc_parameter_server_fini(&param_server, &node);
rc += rcl_logging_rosout_fini_publisher_for_node(&node);
rc += rcl_node_fini(&node);

if (rc != RCL_RET_OK) {
Expand Down
6 changes: 5 additions & 1 deletion rclc_examples/src/example_pingpong.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,8 @@ int main(int argc, const char * argv[])
rc += rcl_timer_fini(&pong_timer);
rc += rcl_subscription_fini(&pong_subscription, &ping_node);
rc += rcl_subscription_fini(&ping_subscription, &pong_node);
rc += rcl_logging_rosout_fini_publisher_for_node(&ping_node);
rc += rcl_logging_rosout_fini_publisher_for_node(&pong_node);
rc += rcl_node_fini(&ping_node);
rc += rcl_node_fini(&pong_node);
rc += rclc_support_fini(&support);
Expand Down Expand Up @@ -439,6 +441,8 @@ int main(int argc, const char * argv[])
rc += rcl_timer_fini(&pong_timer);
rc += rcl_subscription_fini(&pong_subscription, &ping_node);
rc += rcl_subscription_fini(&ping_subscription, &pong_node);
rc += rcl_logging_rosout_fini_publisher_for_node(&ping_node);
rc += rcl_logging_rosout_fini_publisher_for_node(&pong_node);
rc += rcl_node_fini(&ping_node);
rc += rcl_node_fini(&pong_node);
rc += rclc_support_fini(&support);
Expand All @@ -456,4 +460,4 @@ int main(int argc, const char * argv[])
}

return 0;
}
}
Loading
Loading