From 5ed0996bed6f10c7bcf5b6a968ced74bdb0fd687 Mon Sep 17 00:00:00 2001 From: William Woodall Date: Wed, 29 Mar 2017 19:03:54 -0700 Subject: [PATCH] update to support new rmw API with namespaces --- rmw_opensplice_cpp/src/rmw_node.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/rmw_opensplice_cpp/src/rmw_node.cpp b/rmw_opensplice_cpp/src/rmw_node.cpp index e9be3677..2ddbd6e1 100644 --- a/rmw_opensplice_cpp/src/rmw_node.cpp +++ b/rmw_opensplice_cpp/src/rmw_node.cpp @@ -28,12 +28,16 @@ extern "C" { rmw_node_t * -rmw_create_node(const char * name, size_t domain_id) +rmw_create_node(const char * name, const char * namespace_, size_t domain_id) { if (!name) { RMW_SET_ERROR_MSG("name is null"); return nullptr; } + if (!namespace_) { + RMW_SET_ERROR_MSG("namespace_ is null"); + return nullptr; + } DDS::DomainParticipantFactory_var dp_factory = DDS::DomainParticipantFactory::get_instance(); if (!dp_factory) { RMW_SET_ERROR_MSG("failed to get domain participant factory"); @@ -202,6 +206,13 @@ rmw_create_node(const char * name, size_t domain_id) } memcpy(const_cast(node->name), name, strlen(name) + 1); + node->namespace_ = reinterpret_cast(rmw_allocate(sizeof(char) * strlen(namespace_) + 1)); + if (!node->namespace_) { + RMW_SET_ERROR_MSG("failed to allocate memory for node namespace"); + goto fail; + } + memcpy(const_cast(node->namespace_), namespace_, strlen(namespace_) + 1); + buf = rmw_allocate(sizeof(OpenSpliceStaticNodeInfo)); if (!buf) { RMW_SET_ERROR_MSG("failed to allocate memory");