summaryrefslogtreecommitdiff
path: root/CIAO/connectors/dds4ccm/impl/ndds
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2010-11-15 12:49:39 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2010-11-15 12:49:39 +0000
commit02a699ca7a4c9d6d4fe77f938d3100d70cc10802 (patch)
treed63f3261304531a5eafa9c006d1f0f3c2dda89be /CIAO/connectors/dds4ccm/impl/ndds
parent621806c04b3722a4df247ea0fc5a06c8abb013de (diff)
downloadATCD-02a699ca7a4c9d6d4fe77f938d3100d70cc10802.tar.gz
Mon Nov 15 12:45:07 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* connectors/dds4ccm/impl/DDS_TopicBase_Connector_T.cpp: * connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp: * connectors/dds4ccm/impl/ndds/TypeSupport.h: * connectors/dds4ccm/impl/ndds/TypeSupport.cpp: Fixed memory leak and shutdown crashes
Diffstat (limited to 'CIAO/connectors/dds4ccm/impl/ndds')
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp1
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.cpp12
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.h1
3 files changed, 13 insertions, 1 deletions
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp
index 037ad275d20..f1c2b39f9e9 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp
@@ -126,7 +126,6 @@ namespace CIAO
"DomainParticipantManager::~DomainParticipantManager - "
"Finalizing DDS\n"));
- //DDS_TypeSupport_i::close ();
DDSDomainParticipantFactory::finalize_instance ();
}
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.cpp b/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.cpp
index 04ab4b2caee..dadc794445a 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.cpp
@@ -22,6 +22,18 @@ namespace CIAO
type_factories [type] = f;
}
+ DDS_TypeFactory_i*
+ DDS_TypeSupport_i::unregister_type (const char* type, ::DDS::DomainParticipant_ptr)
+ {
+ DDS4CCM_DEBUG (DDS4CCM_LOG_LEVEL_ACTION, (LM_INFO, DDS4CCM_INFO
+ "DDS_TypeSupport_i::unregister_type - "
+ "Unregistered factory for type %C\n", type));
+
+ DDS_TypeFactory_i* f = type_factories [type];
+ type_factories [type] = 0;
+ return f;
+ }
+
::DDS::DataWriter_ptr
DDS_TypeSupport_i::create_datawriter (DDSDataWriter* dw, ::DDS::DomainParticipant_ptr dp)
{
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.h b/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.h
index a62d67423c0..be23ede05b5 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.h
@@ -49,6 +49,7 @@ namespace CIAO
public:
static void close (void);
static void register_type (const char* type, DDS_TypeFactory_i* factory, ::DDS::DomainParticipant_ptr dp);
+ static DDS_TypeFactory_i* unregister_type (const char* type, ::DDS::DomainParticipant_ptr dp);
static ::DDS::DataWriter_ptr create_datawriter (DDSDataWriter* dw, ::DDS::DomainParticipant_ptr dp);
static ::DDS::DataReader_ptr create_datareader (DDSDataReader* dr, ::DDS::DomainParticipant_ptr dp);
private: