@@ -593,6 +593,29 @@ NAN_METHOD(ExpandTopicName) {
593593 info.GetReturnValue ().Set (Nan::New<v8::String>(topic).ToLocalChecked ());
594594}
595595
596+ NAN_METHOD (GetNodeName) {
597+ RclHandle* node_handle = RclHandle::Unwrap<RclHandle>(info[0 ]->ToObject ());
598+ rcl_node_t * node = reinterpret_cast <rcl_node_t *>(node_handle->ptr ());
599+ const char * node_name = rcl_node_get_name (node);
600+ if (!node_name) {
601+ info.GetReturnValue ().Set (Nan::Undefined ());
602+ } else {
603+ info.GetReturnValue ().Set (Nan::New<v8::String>(node_name).ToLocalChecked ());
604+ }
605+ }
606+
607+ NAN_METHOD (GetNamespace) {
608+ RclHandle* node_handle = RclHandle::Unwrap<RclHandle>(info[0 ]->ToObject ());
609+ rcl_node_t * node = reinterpret_cast <rcl_node_t *>(node_handle->ptr ());
610+ const char * node_namespace = rcl_node_get_namespace (node);
611+ if (!node_namespace) {
612+ info.GetReturnValue ().Set (Nan::Undefined ());
613+ } else {
614+ info.GetReturnValue ().Set (
615+ Nan::New<v8::String>(node_namespace).ToLocalChecked ());
616+ }
617+ }
618+
596619const rmw_qos_profile_t * GetQoSProfileFromString (
597620 const std::string& profile) {
598621 const rmw_qos_profile_t * qos_profile = nullptr ;
@@ -685,6 +708,8 @@ BindingMethod binding_methods[] = {
685708 {" validateTopicName" , ValidateTopicName},
686709 {" validateNamespace" , ValidateNamespace},
687710 {" expandTopicName" , ExpandTopicName},
711+ {" getNodeName" , GetNodeName},
712+ {" getNamespace" , GetNamespace},
688713 {" " , nullptr }};
689714
690715} // namespace rclnodejs
0 commit comments