summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsmit <msmit@remedy.nl>2010-01-05 07:36:33 +0000
committermsmit <msmit@remedy.nl>2010-01-05 07:36:33 +0000
commitfefc87c2840ce2aee481c450c899eb7a0affd125 (patch)
treecf1c9f836608e848b8d5112872003ca557cbe335
parent3a3fbe3b87a1a265cd9048cbbe492ea5dac14ec0 (diff)
downloadATCD-fefc87c2840ce2aee481c450c899eb7a0affd125.tar.gz
Tue Jan 5 07:31:33 UTC 2010 Marcel Smit <msmit@remedy.nl>
* connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp: * connectors/dds4ccm/impl/ndds/DDS_Get_T.h: * connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp: * connectors/dds4ccm/impl/ndds/DDS_Listen_T.h: * connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp: * connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp: * connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp: Separate DDS lifecycle from CCM lifecycle. DDS_Get_T and DDS_Listen_T now have a configuration_complete, activate, passivate and remove methods.
-rw-r--r--CIAO/ChangeLog15
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp37
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp103
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.h11
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp107
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.h12
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp31
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp8
8 files changed, 232 insertions, 92 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index cb84dc6e734..120707640fe 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,7 +1,20 @@
+Tue Jan 5 07:31:33 UTC 2010 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DDS_Get_T.h:
+ * connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DDS_Listen_T.h:
+ * connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp:
+ Separate DDS lifecycle from CCM lifecycle. DDS_Get_T and DDS_Listen_T
+ now have a configuration_complete, activate, passivate and remove
+ methods.
+
Mon Jan 4 20:41:07 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
* tests/IDL_Test/IDL3_Plus/KitchenSink.idl:
-
+
Cosmetic changes.
Mon Jan 4 19:43:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp
index 55195076862..7aae160ac71 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp
@@ -101,6 +101,18 @@ DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::configuration_complete (void)
CIAO_TRACE ("DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::configuration_complete");
DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>::configuration_complete ();
+
+ this->push_consumer_.configuration_complete (
+ this->topic_.in (),
+ this->subscriber_.in (),
+ this->library_name_,
+ this->profile_name_);
+
+ this->pull_consumer_.configuration_complete (
+ this->topic_.in (),
+ this->subscriber_.in (),
+ this->library_name_,
+ this->profile_name_);
}
template <typename DDS_TYPE, typename CCM_TYPE>
@@ -109,13 +121,10 @@ DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_activate (void)
{
CIAO_TRACE ("DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_activate");
DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_activate ();
- this->push_consumer_.init (
+
+ this->push_consumer_.activate (
this->context_->get_connection_push_consumer_data_listener (),
- this->context_->get_connection_push_consumer_status (),
- this->topic_.in (),
- this->subscriber_.in (),
- this->library_name_,
- this->profile_name_);
+ this->context_->get_connection_push_consumer_status ());
this->supplier_.init (
this->topic_.in (),
@@ -123,12 +132,8 @@ DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_activate (void)
this->library_name_,
this->profile_name_);
- this->pull_consumer_.init (
- this->context_->get_connection_pull_consumer_status (),
- this->topic_.in (),
- this->subscriber_.in (),
- this->library_name_,
- this->profile_name_);
+ this->pull_consumer_.activate (
+ this->context_->get_connection_pull_consumer_status ());
}
template <typename DDS_TYPE, typename CCM_TYPE>
@@ -138,6 +143,10 @@ DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_passivate (void)
CIAO_TRACE ("DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_passivate");
DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_passivate ();
+
+ this->push_consumer_.passivate ();
+
+ this->pull_consumer_.passivate ();
}
template <typename DDS_TYPE, typename CCM_TYPE>
@@ -147,4 +156,8 @@ DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_remove (void)
CIAO_TRACE ("DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_remove");
DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_remove ();
+
+ this->push_consumer_.remove ();
+
+ this->pull_consumer_.remove ();
}
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp
index 7944e0b20ac..6ba29336363 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.cpp
@@ -21,60 +21,107 @@ DDS_Get_T<DDS_TYPE, CCM_TYPE>::~DDS_Get_T (void)
template <typename DDS_TYPE, typename CCM_TYPE>
void
-DDS_Get_T<DDS_TYPE, CCM_TYPE>::init (
- ::CCM_DDS::PortStatusListener_ptr listener,
+DDS_Get_T<DDS_TYPE, CCM_TYPE>::configuration_complete (
::DDS::Topic_ptr topic,
::DDS::Subscriber_ptr subscriber,
const char* library_name,
const char* profile_name)
{
- CIAO_TRACE ("DDS_Get_T<DDS_TYPE, CCM_TYPE>::init");
+ CIAO_TRACE ("DDS_Get_T<DDS_TYPE, CCM_TYPE>::configuration_complete");
try
{
- if (CORBA::is_nil (this->status_.in ()))
- {
- this->status_ = new ::CIAO::DDS4CCM::RTI::PortStatusListener_T
- <DDS_TYPE, CCM_TYPE> (listener);
- }
-
if (CORBA::is_nil (this->data_.in ()))
{
+ ::DDS::DataReader_var reader;
if (profile_name && library_name)
{
- ::DDS::DataReader_var reader =
- subscriber->create_datareader_with_profile (
+ reader = subscriber->create_datareader_with_profile (
topic,
library_name,
profile_name,
- this->status_.in (),
- ::CIAO::DDS4CCM::RTI::PortStatusListener_T<DDS_TYPE, CCM_TYPE>::get_mask ());
- DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ());
- this->rti_reader_.set_impl (rd);
- this->data_ = ::DDS::CCM_DataReader::_narrow (reader);
- this->dds_get_.set_impl (reader);
- this->dds_read_.set_impl (reader);
+ ::DDS::DataReaderListener::_nil (),
+ 0);
}
else
{
::DDS::DataReaderQos drqos;
- ::DDS::DataReader_var reader =
- subscriber->create_datareader (
+ reader = subscriber->create_datareader (
topic,
drqos,
- this->status_.in (),
- ::CIAO::DDS4CCM::RTI::PortStatusListener_T<DDS_TYPE, CCM_TYPE>::get_mask ());
- DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ());
- this->rti_reader_.set_impl (rd);
- this->data_ = ::DDS::CCM_DataReader::_narrow (reader);
- this->dds_get_.set_impl (reader);
- this->dds_read_.set_impl (reader);
+ ::DDS::DataReaderListener::_nil (),
+ 0);
}
+ ::CIAO::DDS4CCM::RTI::RTI_DataReader_i *rd =
+ dynamic_cast < ::CIAO::DDS4CCM::RTI::RTI_DataReader_i *> (reader.in ());
+ this->rti_reader_.set_impl (rd->get_impl ());
+ this->data_ = ::DDS::CCM_DataReader::_narrow (reader);
+ this->dds_get_.set_impl (reader);
+ this->dds_read_.set_impl (reader);
+ }
+ }
+ catch (...)
+ {
+ CIAO_ERROR (1, (LM_EMERGENCY, "Caught unknown c++ exception in configuration_complete in DDS_Get_T\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+DDS_Get_T<DDS_TYPE, CCM_TYPE>::activate (
+ ::CCM_DDS::PortStatusListener_ptr listener)
+{
+ CIAO_TRACE ("DDS_Get_T<DDS_TYPE, CCM_TYPE>::activate");
+ try
+ {
+ if (CORBA::is_nil (this->status_.in ()))
+ {
+ this->status_ = new ::CIAO::DDS4CCM::RTI::PortStatusListener_T
+ <DDS_TYPE, CCM_TYPE> (listener);
}
+ this->rti_reader_.set_listener (
+ this->status_.in (),
+ ::CIAO::DDS4CCM::RTI::PortStatusListener_T<DDS_TYPE, CCM_TYPE>::get_mask ());
+ }
+ catch (...)
+ {
+ CIAO_ERROR (1, (LM_EMERGENCY, "Caught unknown c++ exception in activate in DDS_Get_T\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+DDS_Get_T<DDS_TYPE, CCM_TYPE>::passivate (void)
+{
+ CIAO_TRACE ("DDS_Get_T<DDS_TYPE, CCM_TYPE>::passivate");
+ try
+ {
+ this->rti_reader_.set_listener (
+ ::DDS::DataReaderListener::_nil (),
+ 0);
+ }
+ catch (...)
+ {
+ CIAO_ERROR (1, (LM_EMERGENCY, "Caught unknown c++ exception in passivate in DDS_Get_T\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+DDS_Get_T<DDS_TYPE, CCM_TYPE>::remove (void)
+{
+ CIAO_TRACE ("DDS_Get_T<DDS_TYPE, CCM_TYPE>::remove");
+ try
+ {
+ this->rti_reader_.delete_contained_entities ();
+ this->rti_reader_.set_impl (0);
}
catch (...)
{
- CIAO_ERROR (1, (LM_EMERGENCY, "Caught unknown c++ exception while creating subscriber entities\n"));
+ CIAO_ERROR (1, (LM_EMERGENCY, "Caught unknown c++ exception in remove in DDS_Get_T\n"));
throw CORBA::INTERNAL ();
}
}
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.h
index 2ac783e66e3..fc1e177d332 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Get_T.h
@@ -30,14 +30,19 @@ public:
::DDS::CCM_DataReader_ptr get_dds_entity (void);
//@}
-
- void init (
- ::CCM_DDS::PortStatusListener_ptr listener,
+ void configuration_complete (
::DDS::Topic_ptr topic,
::DDS::Subscriber_ptr subscriber,
const char* library_name,
const char* profile_name);
+ void activate (
+ ::CCM_DDS::PortStatusListener_ptr listener);
+
+ void passivate (void);
+
+ void remove (void);
+
private:
/**
* DDS_Get
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp
index 1a980c226ee..36c3f5d9e12 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.cpp
@@ -26,9 +26,7 @@ DDS_Listen_T<DDS_TYPE, CCM_TYPE>::~DDS_Listen_T (void)
template <typename DDS_TYPE, typename CCM_TYPE>
void
-DDS_Listen_T<DDS_TYPE, CCM_TYPE>::init (
- typename CCM_TYPE::listener_type::_ptr_type listener,
- ::CCM_DDS::PortStatusListener_ptr status,
+DDS_Listen_T<DDS_TYPE, CCM_TYPE>::configuration_complete (
::DDS::Topic_ptr topic,
::DDS::Subscriber_ptr subscriber,
const char* library_name,
@@ -38,55 +36,106 @@ DDS_Listen_T<DDS_TYPE, CCM_TYPE>::init (
try
{
- if (CORBA::is_nil (this->data_listener_.in ()))
- {
- this->data_listener_ = new ::CIAO::DDS4CCM::RTI::DataReaderListener_T
- <DDS_TYPE, CCM_TYPE> (
- listener,
- status,
- data_control_.in ());
- }
-
if (CORBA::is_nil (this->data_reader_.in ()))
{
+ ::DDS::DataReader_var reader;
if (library_name && profile_name)
{
- ::DDS::DataReader_var reader =
- subscriber->create_datareader_with_profile (
+ reader = subscriber->create_datareader_with_profile (
topic,
library_name,
profile_name,
- this->data_listener_.in (),
- ::CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::get_mask ());
- DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ());
- this->rti_reader_.set_impl (rd);
- this->data_reader_ = ::DDS::CCM_DataReader::_narrow (reader);
- this->dds_read_.set_impl (this->data_reader_.in ());
+ ::DDS::DataReaderListener::_nil (),
+ 0);
}
else
{
::DDS::DataReaderQos drqos;
- ::DDS::DataReader_var reader =
- subscriber->create_datareader (
+ reader = subscriber->create_datareader (
topic,
drqos,
- this->data_listener_.in (),
- ::CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::get_mask ());
- DDSDataReader *rd = dynamic_cast < DDSDataReader *> (reader.in ());
- this->rti_reader_.set_impl (rd);
- this->data_reader_ = ::DDS::CCM_DataReader::_narrow (reader);
- this->dds_read_.set_impl (this->data_reader_.in ());
+ ::DDS::DataReaderListener::_nil (),
+ 0);
}
+ ::CIAO::DDS4CCM::RTI::RTI_DataReader_i *rd =
+ dynamic_cast < ::CIAO::DDS4CCM::RTI::RTI_DataReader_i *> (reader.in ());
+ this->rti_reader_.set_impl (rd->get_impl ());
+ this->data_reader_ = ::DDS::CCM_DataReader::_narrow (reader);
+ this->dds_read_.set_impl (this->data_reader_.in ());
+ }
+ }
+ catch (...)
+ {
+ CIAO_ERROR (1, (LM_EMERGENCY, "Caught unknown c++ exception configuration_complete in DDS_Listen_T\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+DDS_Listen_T<DDS_TYPE, CCM_TYPE>::activate (
+ typename CCM_TYPE::listener_type::_ptr_type listener,
+ ::CCM_DDS::PortStatusListener_ptr status)
+{
+ CIAO_TRACE ("DDS_Listen_T<DDS_TYPE, CCM_TYPE>::activate");
+ try
+ {
+ if (CORBA::is_nil (this->data_listener_.in ()))
+ {
+ this->data_listener_ = new ::CIAO::DDS4CCM::RTI::DataReaderListener_T
+ <DDS_TYPE, CCM_TYPE> (
+ listener,
+ status,
+ this->data_control_.in ());
}
+ this->rti_reader_.set_listener (
+ this->data_listener_.in (),
+ ::CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::get_mask ());
+ }
+ catch (...)
+ {
+ CIAO_ERROR (1, (LM_EMERGENCY, "Caught unknown c++ exception in activate in DDS_Listen_T\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+DDS_Listen_T<DDS_TYPE, CCM_TYPE>::passivate ()
+{
+ CIAO_TRACE ("DDS_Listen_T<DDS_TYPE, CCM_TYPE>::passivate");
+ try
+ {
+ this->rti_reader_.set_listener (
+ ::DDS::DataReaderListener::_nil (),
+ 0);
}
catch (...)
{
- CIAO_ERROR (1, (LM_EMERGENCY, "Caught unknown c++ exception while creating subscriber entities\n"));
+ CIAO_ERROR (1, (LM_EMERGENCY, "Caught unknown c++ exception in passivate in DDS_Listen_T\n"));
throw CORBA::INTERNAL ();
}
}
template <typename DDS_TYPE, typename CCM_TYPE>
+void
+DDS_Listen_T<DDS_TYPE, CCM_TYPE>::remove ()
+{
+ CIAO_TRACE ("DDS_Listen_T<DDS_TYPE, CCM_TYPE>::remove");
+ try
+ {
+ this->rti_reader_.delete_contained_entities ();
+ this->rti_reader_.set_impl (0);
+ }
+ catch (...)
+ {
+ CIAO_ERROR (1, (LM_EMERGENCY, "Caught unknown c++ exception in remove in DDS_Listen_T\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+
+template <typename DDS_TYPE, typename CCM_TYPE>
typename CCM_TYPE::reader_type::_ptr_type
DDS_Listen_T<DDS_TYPE, CCM_TYPE>::get_data (void)
{
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.h
index 5b0037cf320..50bae73e256 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Listen_T.h
@@ -27,14 +27,20 @@ public:
::DDS::CCM_DataReader_ptr get_dds_entity (void);
//@}
- void init (
- typename CCM_TYPE::listener_type::_ptr_type listener,
- ::CCM_DDS::PortStatusListener_ptr status,
+ void configuration_complete (
::DDS::Topic_ptr topic,
::DDS::Subscriber_ptr subscriber,
const char* library_name,
const char* profile_name);
+ void activate (
+ typename CCM_TYPE::listener_type::_ptr_type listener,
+ ::CCM_DDS::PortStatusListener_ptr status);
+
+ void passivate (void);
+
+ void remove (void);
+
private:
/**
* DDS_Listen
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp
index 576adf3ffb5..521574df5af 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp
@@ -120,6 +120,17 @@ void
DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::configuration_complete (void)
{
DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>::configuration_complete ();
+ this->push_observer_.configuration_complete (
+ this->topic_.in (),
+ this->subscriber_.in (),
+ this->library_name_,
+ this->profile_name_);
+
+ this->pull_observer_.configuration_complete (
+ this->topic_.in (),
+ this->subscriber_.in (),
+ this->library_name_,
+ this->profile_name_);
}
template <typename DDS_TYPE, typename CCM_TYPE>
@@ -133,13 +144,9 @@ DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_activate (void)
this->library_name_,
this->profile_name_);
- this->push_observer_.init (
+ this->push_observer_.activate (
this->context_->get_connection_push_observer_data_listener (),
- this->context_->get_connection_push_observer_status (),
- this->topic_.in (),
- this->subscriber_.in (),
- this->library_name_,
- this->profile_name_);
+ this->context_->get_connection_push_observer_status ());
this->push_state_observer_.init (
this->context_->get_connection_push_state_observer_data_listener (),
@@ -149,12 +156,8 @@ DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_activate (void)
this->library_name_,
this->profile_name_);
- this->pull_observer_.init (
- this->context_->get_connection_pull_observer_status (),
- this->topic_.in (),
- this->subscriber_.in (),
- this->library_name_,
- this->profile_name_);
+ this->pull_observer_.activate (
+ this->context_->get_connection_pull_observer_status ());
this->passive_observer_.init (
this->context_->get_connection_passive_observer_status (),
@@ -169,6 +172,8 @@ void
DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_passivate (void)
{
DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_passivate ();
+ this->push_observer_.passivate ();
+ this->pull_observer_.passivate ();
}
template <typename DDS_TYPE, typename CCM_TYPE>
@@ -176,5 +181,7 @@ void
DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_remove (void)
{
DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_remove ();
+ this->push_observer_.remove ();
+ this->pull_observer_.remove ();
}
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp
index 2e6b1a4c2ce..b136889b588 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp
@@ -22,6 +22,10 @@ void
DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>::configuration_complete (void)
{
DDS_Base_Connector_T<DDS_TYPE, CCM_TYPE>::configuration_complete ();
+
+ this->configure_default_topic ();
+ this->configure_subscriber ();
+ this->configure_publisher ();
}
template <typename DDS_TYPE, typename CCM_TYPE>
@@ -36,10 +40,6 @@ void
DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_activate (void)
{
DDS_Base_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_activate ();
-
- this->configure_default_topic ();
- this->configure_subscriber ();
- this->configure_publisher ();
}
template <typename DDS_TYPE, typename CCM_TYPE>