From 5781044edd8bab6e648016a646552dda6c2e9a19 Mon Sep 17 00:00:00 2001 From: Dan Rose Date: Mon, 13 Apr 2020 16:08:25 -0500 Subject: [PATCH] Implement rmw_set_log_severity (#149) --- rmw_cyclonedds_cpp/src/rmw_node.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/rmw_cyclonedds_cpp/src/rmw_node.cpp b/rmw_cyclonedds_cpp/src/rmw_node.cpp index 316e007..04dd6dd 100644 --- a/rmw_cyclonedds_cpp/src/rmw_node.cpp +++ b/rmw_cyclonedds_cpp/src/rmw_node.cpp @@ -347,9 +347,24 @@ extern "C" const char * rmw_get_serialization_format() extern "C" rmw_ret_t rmw_set_log_severity(rmw_log_severity_t severity) { - static_cast(severity); - RMW_SET_ERROR_MSG("unimplemented"); - return RMW_RET_ERROR; + uint32_t mask = 0; + switch (severity) { + default: + RMW_SET_ERROR_MSG_WITH_FORMAT_STRING("%s: Invalid log severity '%d'", __func__, severity); + return RMW_RET_INVALID_ARGUMENT; + case RMW_LOG_SEVERITY_DEBUG: + mask |= DDS_LC_DISCOVERY | DDS_LC_THROTTLE | DDS_LC_CONFIG; + case RMW_LOG_SEVERITY_INFO: + mask |= DDS_LC_INFO; + case RMW_LOG_SEVERITY_WARN: + mask |= DDS_LC_WARNING; + case RMW_LOG_SEVERITY_ERROR: + mask |= DDS_LC_ERROR; + case RMW_LOG_SEVERITY_FATAL: + mask |= DDS_LC_FATAL; + } + dds_set_log_mask(mask); + return RMW_RET_OK; } extern "C" rmw_ret_t rmw_context_fini(rmw_context_t * context)