From 93879ec3460e95c7c42251f509349e65025960c2 Mon Sep 17 00:00:00 2001 From: "Justin R. Wilson" Date: Wed, 18 Oct 2023 09:41:51 -0500 Subject: [PATCH] Implementation of DynamicDataFactory is incomplete Problem ------- The implementation of DDS::DynamicDataFactory is incomplete. Solution -------- Complete it by adding `delete_instance`. --- dds/DCPS/XTypes/DynamicDataFactory.cpp | 5 +++++ dds/DCPS/XTypes/DynamicDataFactory.h | 2 ++ dds/DdsDynamicData.idl | 7 +++---- docs/news.d/xtypes-dynamic-data.rst | 5 +++++ 4 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 docs/news.d/xtypes-dynamic-data.rst diff --git a/dds/DCPS/XTypes/DynamicDataFactory.cpp b/dds/DCPS/XTypes/DynamicDataFactory.cpp index 1a62a1985bf..315ad995654 100644 --- a/dds/DCPS/XTypes/DynamicDataFactory.cpp +++ b/dds/DCPS/XTypes/DynamicDataFactory.cpp @@ -22,6 +22,11 @@ DynamicDataFactory_ptr DynamicDataFactory::get_instance() return ACE_Singleton::instance(); } +ReturnCode_t DynamicDataFactory::delete_instance() +{ + return RETCODE_OK; +} + DynamicData_ptr DynamicDataFactory::create_data(DynamicType_ptr type) { return new OpenDDS::XTypes::DynamicDataImpl(type); diff --git a/dds/DCPS/XTypes/DynamicDataFactory.h b/dds/DCPS/XTypes/DynamicDataFactory.h index 733853e15a5..2dcc4969525 100644 --- a/dds/DCPS/XTypes/DynamicDataFactory.h +++ b/dds/DCPS/XTypes/DynamicDataFactory.h @@ -35,6 +35,8 @@ class OpenDDS_Dcps_Export DynamicDataFactory static DynamicDataFactory_ptr get_instance(); + static ReturnCode_t delete_instance(); + DynamicData_ptr create_data(DynamicType_ptr type); ReturnCode_t delete_data(DynamicData_ptr /*data*/) diff --git a/dds/DdsDynamicData.idl b/dds/DdsDynamicData.idl index 2a12d8d5569..2bfe82f28a3 100644 --- a/dds/DdsDynamicData.idl +++ b/dds/DdsDynamicData.idl @@ -163,11 +163,10 @@ module DDS { local interface DynamicDataFactoryInterf { // Implemented in C++ - //static DynamicDataFactory get_instance(); - // Not Implemented - //static DDS::ReturnCode_t delete_instance(); + // static DynamicDataFactory get_instance(); + // Implemented in C++ + // static DDS::ReturnCode_t delete_instance(); DynamicData create_data(in DynamicType type); - /// This is a NOP in OpenDDS DDS::ReturnCode_t delete_data(in DynamicData data); }; diff --git a/docs/news.d/xtypes-dynamic-data.rst b/docs/news.d/xtypes-dynamic-data.rst new file mode 100644 index 00000000000..7b3ca33ed99 --- /dev/null +++ b/docs/news.d/xtypes-dynamic-data.rst @@ -0,0 +1,5 @@ +.. news-prs: 4320 + +.. news-start-section: Additions +- Complete interfaces for dealing with DynamicData and DynamicTypes. +.. news-end-section