summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CIAO/ChangeLog61
-rw-r--r--CIAO/connectors/dds4ccm/impl/ContentFilterSetting.h2
-rw-r--r--CIAO/connectors/dds4ccm/impl/ContentFilteredTopic_T.h2
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_Get_T.cpp8
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_Get_T.h14
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_Listen_T.cpp10
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_Listen_T.h20
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_StateListen_T.cpp15
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_StateListen_T.h20
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_Subscriber_Base_T.cpp50
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_Subscriber_Base_T.h22
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_Update_T.cpp32
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_Update_T.h17
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_Write_T.cpp38
-rw-r--r--CIAO/connectors/dds4ccm/impl/DDS_Write_T.h16
-rw-r--r--CIAO/connectors/dds4ccm/impl/DataReaderListener_T.cpp10
-rw-r--r--CIAO/connectors/dds4ccm/impl/DataReaderListener_T.h10
-rw-r--r--CIAO/connectors/dds4ccm/impl/DataReaderStateListener_T.cpp18
-rw-r--r--CIAO/connectors/dds4ccm/impl/DataReaderStateListener_T.h6
-rw-r--r--CIAO/connectors/dds4ccm/impl/DataReader_T.h2
-rw-r--r--CIAO/connectors/dds4ccm/impl/DataWriter_T.h2
-rw-r--r--CIAO/connectors/dds4ccm/impl/LocalObject_T.cpp25
-rw-r--r--CIAO/connectors/dds4ccm/impl/LocalObject_T.h19
-rw-r--r--CIAO/connectors/dds4ccm/tests/ListenNotEnabled/Sender/LNE_Test_Sender_exec.cpp4
24 files changed, 269 insertions, 154 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index bd2667af0e0..3fb27448181 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,64 @@
+Tue Aug 17 18:30:35 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ContentFilterSetting.h:
+ * connectors/dds4ccm/impl/ContentFilteredTopic_T.h:
+ * connectors/dds4ccm/impl/DDS_Get_T.h:
+ * connectors/dds4ccm/impl/DDS_Get_T.cpp:
+ * connectors/dds4ccm/impl/DDS_Listen_T.h:
+ * connectors/dds4ccm/impl/DDS_Listen_T.cpp:
+ * connectors/dds4ccm/impl/DDS_StateListen_T.h:
+ * connectors/dds4ccm/impl/DDS_StateListen_T.cpp:
+ * connectors/dds4ccm/impl/DDS_Subscriber_Base_T.h:
+ * connectors/dds4ccm/impl/DDS_Subscriber_Base_T.cpp:
+ * connectors/dds4ccm/impl/DDS_Update_T.h:
+ * connectors/dds4ccm/impl/DDS_Update_T.cpp:
+ * connectors/dds4ccm/impl/DDS_Write_T.h:
+ * connectors/dds4ccm/impl/DDS_Write_T.cpp:
+ * connectors/dds4ccm/impl/DataReaderListener_T.h:
+ * connectors/dds4ccm/impl/DataReaderListener_T.cpp:
+ * connectors/dds4ccm/impl/DataReaderStateListener_T.h:
+ * connectors/dds4ccm/impl/DataReaderStateListener_T.cpp:
+ * connectors/dds4ccm/impl/DataReader_T.h:
+ * connectors/dds4ccm/impl/DataWriter_T.h:
+ * connectors/dds4ccm/impl/LocalObject_T.h:
+ * connectors/dds4ccm/impl/LocalObject_T.cpp:
+ Splitted lifecycle of the connector from its facets using the new
+ LocalObject_Auto_Ptr_T which allocates the local facet and makes sure
+ we call release on it when the connector gets destructed. It can be
+ that the user component is destructed after the connector and than
+ we just can't destructs the facets at that moment, because they are
+ still in the user component context. They will get destructed at the
+ moment the user component context gets destructed
+
+Tue Aug 17 18:29:41 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/Connector_Servant_Impl_Base.cpp:
+
+ * connectors/dds4ccm/impl/ContentFilterSetting.h:
+ * connectors/dds4ccm/impl/ContentFilteredTopic_T.h:
+ * connectors/dds4ccm/impl/DDS_Get_T.h:
+ * connectors/dds4ccm/impl/DDS_Get_T.cpp:
+ * connectors/dds4ccm/impl/DDS_Listen_T.h:
+ * connectors/dds4ccm/impl/DDS_Listen_T.cpp:
+ * connectors/dds4ccm/impl/DDS_StateListen_T.h:
+ * connectors/dds4ccm/impl/DDS_StateListen_T.cpp:
+ * connectors/dds4ccm/impl/DDS_Subscriber_Base_T.h:
+ * connectors/dds4ccm/impl/DDS_Subscriber_Base_T.cpp:
+ * connectors/dds4ccm/impl/DDS_Update_T.h:
+ * connectors/dds4ccm/impl/DDS_Update_T.cpp:
+ * connectors/dds4ccm/impl/DDS_Write_T.h:
+ * connectors/dds4ccm/impl/DDS_Write_T.cpp:
+ * connectors/dds4ccm/impl/DataReaderListener_T.h:
+ * connectors/dds4ccm/impl/DataReaderListener_T.cpp:
+ * connectors/dds4ccm/impl/DataReaderStateListener_T.h:
+ * connectors/dds4ccm/impl/DataReaderStateListener_T.cpp:
+ * connectors/dds4ccm/impl/DataReader_T.h:
+ * connectors/dds4ccm/impl/DataWriter_T.h:
+ * connectors/dds4ccm/impl/LocalObject_T.h:
+ * connectors/dds4ccm/impl/LocalObject_T.cpp:
+
+ * connectors/dds4ccm/tests/ListenNotEnabled/Sender/LNE_Test_Sender_exec.cpp:
+
Tue Aug 17 07:56:45 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* connectors/ami4ccm/docs/RFP.odt:
diff --git a/CIAO/connectors/dds4ccm/impl/ContentFilterSetting.h b/CIAO/connectors/dds4ccm/impl/ContentFilterSetting.h
index 0bfcbf52568..ba7de8101d6 100644
--- a/CIAO/connectors/dds4ccm/impl/ContentFilterSetting.h
+++ b/CIAO/connectors/dds4ccm/impl/ContentFilterSetting.h
@@ -25,7 +25,7 @@ namespace CIAO
{
public:
/// Constructor
- CCM_DDS_ContentFilterSetting_i ();
+ CCM_DDS_ContentFilterSetting_i (void);
/// Destructor
virtual ~CCM_DDS_ContentFilterSetting_i (void);
diff --git a/CIAO/connectors/dds4ccm/impl/ContentFilteredTopic_T.h b/CIAO/connectors/dds4ccm/impl/ContentFilteredTopic_T.h
index 0384a680e60..7e17febfbf1 100644
--- a/CIAO/connectors/dds4ccm/impl/ContentFilteredTopic_T.h
+++ b/CIAO/connectors/dds4ccm/impl/ContentFilteredTopic_T.h
@@ -32,7 +32,7 @@ namespace CIAO
typedef CCM_DDS_DomainParticipant_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE> DomainParticipant_type;
public:
/// Constructor
- CCM_DDS_ContentFilteredTopic_T (DDSContentFilteredTopic * dw);
+ explicit CCM_DDS_ContentFilteredTopic_T (DDSContentFilteredTopic * dw = 0);
/// Destructor
virtual ~CCM_DDS_ContentFilteredTopic_T (void);
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_Get_T.cpp b/CIAO/connectors/dds4ccm/impl/DDS_Get_T.cpp
index 6ac91527a75..6c01abc360e 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_Get_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/DDS_Get_T.cpp
@@ -28,8 +28,8 @@ DDS_Get_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::configuration_complete (
subscriber,
library_name,
profile_name);
- this->dds_get_.set_impl (&this->data_reader_, &this->condition_manager_);
- this->dds_get_._set_component (component);
+ this->dds_get_->set_impl (this->data_reader_, &this->condition_manager_);
+ this->dds_get_->_set_component (component);
}
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
@@ -39,7 +39,7 @@ DDS_Get_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::remove (
{
DDS4CCM_TRACE ("DDS_Get_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::remove");
DDSSubscriberBase_type::remove (subscriber);
- this->dds_get_._set_component (CCM_TYPE::base_type::_nil ());
+ this->dds_get_->_set_component (CCM_TYPE::base_type::_nil ());
}
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
@@ -48,5 +48,5 @@ DDS_Get_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_fresh_data (void)
{
DDS4CCM_TRACE ("DDS_Get_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_fresh_data");
- return CCM_TYPE::getter_type::_duplicate (&this->dds_get_);
+ return CCM_TYPE::getter_type::_duplicate (this->dds_get_);
}
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_Get_T.h b/CIAO/connectors/dds4ccm/impl/DDS_Get_T.h
index 33a0697e789..c460aab7b33 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_Get_T.h
+++ b/CIAO/connectors/dds4ccm/impl/DDS_Get_T.h
@@ -15,11 +15,6 @@ template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDO
class DDS_Get_T
: public DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
{
-typedef CIAO::DDS4CCM::ConditionManager_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- ConditionManager_type;
-typedef DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
- DDSSubscriberBase_type;
-
public:
DDS_Get_T (void);
~DDS_Get_T (void);
@@ -43,12 +38,19 @@ public:
::DDS::Subscriber_ptr subscriber);
private:
+ typedef CIAO::DDS4CCM::ConditionManager_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ ConditionManager_type;
+ typedef DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
+ DDSSubscriberBase_type;
+ typedef ::CIAO::DDS4CCM::DDS_CCM::Getter_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
+ Getter_type;
+
/**
* DDS_Get
*/
//@{
::DDS::DataReaderListener_var listener_;
- ::CIAO::DDS4CCM::DDS_CCM::Getter_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE> dds_get_;
+ ::CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<Getter_type> dds_get_;
//@}
};
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_Listen_T.cpp b/CIAO/connectors/dds4ccm/impl/DDS_Listen_T.cpp
index 8702823e2f3..61333d87417 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_Listen_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/DDS_Listen_T.cpp
@@ -32,7 +32,7 @@ DDS_Listen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::configuration_complete (
subscriber,
library_name,
profile_name);
- this->data_control_._set_component (component);
+ this->data_control_->_set_component (component);
}
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
@@ -50,13 +50,13 @@ DDS_Listen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::activate (
DataReaderListener_type (
listener,
status,
- data_control_,
+ this->data_control_,
reactor,
this->condition_manager_),
::CORBA::NO_MEMORY ());
}
- ::DDS::ReturnCode_t const retcode = this->data_reader_.set_listener (
+ ::DDS::ReturnCode_t const retcode = this->data_reader_->set_listener (
this->listener_.in (),
DataReaderListener_type::get_mask (status));
@@ -77,7 +77,7 @@ DDS_Listen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::remove (
{
DDS4CCM_TRACE ("DDS_Listen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::remove");
- this->data_control_._set_component (CCM_TYPE::base_type::_nil ());
+ this->data_control_->_set_component (CCM_TYPE::base_type::_nil ());
DDSSubscriberBase_type::remove (subscriber);
}
@@ -88,6 +88,6 @@ DDS_Listen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_data_control (void)
{
DDS4CCM_TRACE ("DDS_Listen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_data_control");
- return ::CCM_DDS::CCM_DataListenerControl::_duplicate (&this->data_control_);
+ return ::CCM_DDS::CCM_DataListenerControl::_duplicate (this->data_control_);
}
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_Listen_T.h b/CIAO/connectors/dds4ccm/impl/DDS_Listen_T.h
index b9548a8cdf8..0bdabcd0596 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_Listen_T.h
+++ b/CIAO/connectors/dds4ccm/impl/DDS_Listen_T.h
@@ -20,15 +20,6 @@ template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDO
class DDS_Listen_T
: public DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
{
-typedef CIAO::DDS4CCM::ConditionManager_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- ConditionManager_type;
-typedef ::CIAO::DDS4CCM::DataReaderListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- DataReaderListener_type;
-typedef CCM_DDS_DataListenerControl_T< ::CCM_DDS::CCM_DataListenerControl, CCM_TYPE>
- DataListenerControl_type;
-typedef DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
- DDSSubscriberBase_type;
-
public:
DDS_Listen_T (void);
~DDS_Listen_T (void);
@@ -56,11 +47,20 @@ public:
void remove (::DDS::Subscriber_ptr subscriber);
private:
+ typedef CIAO::DDS4CCM::ConditionManager_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ ConditionManager_type;
+ typedef ::CIAO::DDS4CCM::DataReaderListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ DataReaderListener_type;
+ typedef CCM_DDS_DataListenerControl_T< ::CCM_DDS::CCM_DataListenerControl, CCM_TYPE>
+ DataListenerControl_type;
+ typedef DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
+ DDSSubscriberBase_type;
+
/**
* DDS_Listen
*/
//@{
- DataListenerControl_type data_control_;
+ ::CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<DataListenerControl_type> data_control_;
//@}
};
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_StateListen_T.cpp b/CIAO/connectors/dds4ccm/impl/DDS_StateListen_T.cpp
index 182ba848026..45f1ecdab7e 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_StateListen_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/DDS_StateListen_T.cpp
@@ -36,7 +36,7 @@ DDS_StateListen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::configuration_complet
library_name,
profile_name);
- this->data_control_._set_component (component);
+ this->data_control_->_set_component (component);
}
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
@@ -59,9 +59,12 @@ DDS_StateListen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::activate (
this->condition_manager_),
::CORBA::NO_MEMORY ());
}
- ::DDS::ReturnCode_t const retcode = this->data_reader_.set_listener (
- this->listener_.in (),
- DataReaderStateListener_type::get_mask (listener));
+
+ ::DDS::ReturnCode_t const retcode =
+ this->data_reader_->set_listener (
+ this->listener_.in (),
+ DataReaderStateListener_type::get_mask (listener));
+
if (retcode != ::DDS::RETCODE_OK)
{
DDS4CCM_ERROR (DDS4CCM_LOG_LEVEL_ERROR, (LM_ERROR, CLINFO
@@ -79,7 +82,7 @@ DDS_StateListen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::remove (
{
DDS4CCM_TRACE ("DDS_StateListen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::remove");
- this->data_control_._set_component (CCM_TYPE::base_type::_nil ());
+ this->data_control_->_set_component (CCM_TYPE::base_type::_nil ());
DDSSubscriberBase_type::remove (subscriber);
}
@@ -89,7 +92,7 @@ DDS_StateListen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_data_control (voi
{
DDS4CCM_TRACE ("DDS_StateListen_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_data_control");
- return ::CCM_DDS::CCM_StateListenerControl::_duplicate (&this->data_control_);
+ return ::CCM_DDS::CCM_StateListenerControl::_duplicate (this->data_control_);
}
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_StateListen_T.h b/CIAO/connectors/dds4ccm/impl/DDS_StateListen_T.h
index 18cea2335e2..02f2ad4ab71 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_StateListen_T.h
+++ b/CIAO/connectors/dds4ccm/impl/DDS_StateListen_T.h
@@ -16,15 +16,6 @@ template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDO
class DDS_StateListen_T
: public DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
{
-typedef CIAO::DDS4CCM::ConditionManager_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- ConditionManager_type;
-typedef ::CIAO::DDS4CCM::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- DataReaderStateListener_type;
-typedef CCM_DDS_StateListenerControl_T< ::CCM_DDS::CCM_StateListenerControl, CCM_TYPE>
- StateListenerControl_type;
-typedef DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
- DDSSubscriberBase_type;
-
public:
DDS_StateListen_T (void);
~DDS_StateListen_T (void);
@@ -52,11 +43,20 @@ public:
void remove (::DDS::Subscriber_ptr subscriber);
private:
+ typedef CIAO::DDS4CCM::ConditionManager_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ ConditionManager_type;
+ typedef ::CIAO::DDS4CCM::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ DataReaderStateListener_type;
+ typedef CCM_DDS_StateListenerControl_T< ::CCM_DDS::CCM_StateListenerControl, CCM_TYPE>
+ StateListenerControl_type;
+ typedef DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
+ DDSSubscriberBase_type;
+
/**
* DDS_StateListen
*/
//@{
- StateListenerControl_type data_control_;
+ ::CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<StateListenerControl_type> data_control_;
//@}
};
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_Subscriber_Base_T.cpp b/CIAO/connectors/dds4ccm/impl/DDS_Subscriber_Base_T.cpp
index b292584888d..cad15909a77 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_Subscriber_Base_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/DDS_Subscriber_Base_T.cpp
@@ -5,8 +5,7 @@
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::DDS_Subscriber_Base_T (void)
- : data_reader_ (0),
- configuration_complete_ (false)
+ : configuration_complete_ (false)
{
}
@@ -28,13 +27,12 @@ DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::configuration_com
this->configuration_complete_ = true;
- if (!this->data_reader_.get_impl ())
+ if (!this->data_reader_->get_impl ())
{
- if (ACE_OS::strlen (this->cft_setting_.filter ()->expression.in ()) > 0)
+ if (ACE_OS::strlen (this->cft_setting_->filter ()->expression.in ()) > 0)
{
::DDS::ContentFilteredTopic_var cft =
- this->cft_setting_.create_contentfilteredtopic (topic,
- subscriber);
+ this->cft_setting_->create_contentfilteredtopic (topic, subscriber);
if (CORBA::is_nil (cft.in ()))
{
DDS4CCM_ERROR (DDS4CCM_LOG_LEVEL_ERROR, (LM_ERROR,
@@ -42,21 +40,21 @@ DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::configuration_com
"Error creating ContentFilteredTopic.\n"));
throw ::CORBA::INTERNAL ();
}
- this->data_reader_.create_datareader (cft,
- subscriber,
- library_name,
- profile_name);
+ this->data_reader_->create_datareader (cft,
+ subscriber,
+ library_name,
+ profile_name);
}
else
{
- this->data_reader_.create_datareader (topic,
- subscriber,
- library_name,
- profile_name);
+ this->data_reader_->create_datareader (topic,
+ subscriber,
+ library_name,
+ profile_name);
}
- this->dds_read_.set_impl (&this->data_reader_,
+ this->dds_read_->set_impl (this->data_reader_,
&this->condition_manager_);
- this->dds_read_._set_component (component);
+ this->dds_read_->_set_component (component);
}
}
@@ -75,7 +73,7 @@ DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::activate (
::CORBA::NO_MEMORY ());
}
- ::DDS::ReturnCode_t const retcode = this->data_reader_.set_listener (
+ ::DDS::ReturnCode_t const retcode = this->data_reader_->set_listener (
this->listener_.in (),
PortStatusListener_type::get_mask (status));
@@ -96,7 +94,7 @@ DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::passivate ()
DDS4CCM_TRACE ("DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::passivate");
this->condition_manager_.passivate ();
- this->data_reader_.passivate ();
+ this->data_reader_->passivate ();
this->listener_ = ::DDS::DataReaderListener::_nil ();
}
@@ -107,9 +105,9 @@ DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::remove (
{
DDS4CCM_TRACE ("DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::remove");
- this->data_reader_.delete_datareader (subscriber);
- this->cft_setting_.delete_contentfilteredtopic (subscriber);
- this->dds_read_._set_component (CCM_TYPE::base_type::_nil ());
+ this->data_reader_->delete_datareader (subscriber);
+ this->cft_setting_->delete_contentfilteredtopic (subscriber);
+ this->dds_read_->_set_component (CCM_TYPE::base_type::_nil ());
}
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
@@ -118,7 +116,7 @@ DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_data (void)
{
DDS4CCM_TRACE ("DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_data");
- return CCM_TYPE::reader_type::_duplicate (&this->dds_read_);
+ return CCM_TYPE::reader_type::_duplicate (this->dds_read_);
}
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
@@ -127,7 +125,7 @@ DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_dds_entity (v
{
DDS4CCM_TRACE ("DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_dds_entity");
- return ::DDS::CCM_DataReader::_duplicate (&this->data_reader_);
+ return ::DDS::CCM_DataReader::_duplicate (this->data_reader_);
}
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
@@ -136,7 +134,7 @@ DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_filter_config
{
DDS4CCM_TRACE ("DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::get_filter_config");
- return ::CCM_DDS::CCM_ContentFilterSetting::_duplicate (&this->cft_setting_);
+ return ::CCM_DDS::CCM_ContentFilterSetting::_duplicate (this->cft_setting_);
}
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
@@ -145,7 +143,7 @@ DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::filter (void)
{
DDS4CCM_TRACE ("DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::filter");
- return this->cft_setting_.filter ();
+ return this->cft_setting_->filter ();
}
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
@@ -160,6 +158,6 @@ DDS_Subscriber_Base_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>::filter (
}
else
{
- this->cft_setting_.filter (filter);
+ this->cft_setting_->filter (filter);
}
}
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_Subscriber_Base_T.h b/CIAO/connectors/dds4ccm/impl/DDS_Subscriber_Base_T.h
index dfeb95661c6..35461982c25 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_Subscriber_Base_T.h
+++ b/CIAO/connectors/dds4ccm/impl/DDS_Subscriber_Base_T.h
@@ -20,11 +20,6 @@
template <typename DDS_TYPE, typename CCM_TYPE, bool FIXED, DDS4CCM_Vendor VENDOR_TYPE>
class DDS_Subscriber_Base_T
{
-typedef CIAO::DDS4CCM::ConditionManager_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- ConditionManager_type;
-typedef ::CIAO::DDS4CCM::PortStatusListener_T <DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- PortStatusListener_type;
-
public:
DDS_Subscriber_Base_T (void);
~DDS_Subscriber_Base_T (void);
@@ -61,14 +56,25 @@ public:
void remove (::DDS::Subscriber_ptr subscriber);
protected:
+ typedef CIAO::DDS4CCM::ConditionManager_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ ConditionManager_type;
+ typedef ::CIAO::DDS4CCM::PortStatusListener_T <DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ PortStatusListener_type;
+ typedef ::CIAO::DDS4CCM::DDS_CCM::Reader_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE>
+ Reader_type;
+ typedef ::CIAO::DDS4CCM::DataReader_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ DataReader_type;
+ typedef ::CIAO::DDS4CCM::CCM_DDS_ContentFilterSetting_i
+ ContentFilterSetting_type;
+
/**
* DDS_Subscriber_Base_T
*/
//@{
::DDS::DataReaderListener_var listener_;
- ::CIAO::DDS4CCM::CCM_DDS_ContentFilterSetting_i cft_setting_;
- ::CIAO::DDS4CCM::DDS_CCM::Reader_T<DDS_TYPE, CCM_TYPE, FIXED, VENDOR_TYPE> dds_read_;
- ::CIAO::DDS4CCM::DataReader_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE> data_reader_;
+ ::CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<ContentFilterSetting_type> cft_setting_;
+ ::CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<Reader_type> dds_read_;
+ ::CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<DataReader_type> data_reader_;
bool configuration_complete_;
//@}
ConditionManager_type condition_manager_;
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_Update_T.cpp b/CIAO/connectors/dds4ccm/impl/DDS_Update_T.cpp
index 827b11a21f1..773fbeb20a4 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_Update_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/DDS_Update_T.cpp
@@ -9,8 +9,7 @@
#include "dds4ccm/impl/Log_Macros.h"
template <typename DDS_TYPE, typename CCM_TYPE, DDS4CCM_Vendor VENDOR_TYPE>
-DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::DDS_Update_T (void) :
- ccm_dds_writer_ (0)
+DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::DDS_Update_T (void)
{
}
@@ -29,7 +28,7 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::configuration_complete (
const char* profile_name)
{
DDS4CCM_TRACE ("DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::configuration_complete");
- if (!this->ccm_dds_writer_.get_impl ())
+ if (!this->ccm_dds_writer_->get_impl ())
{
::DDS::DataWriter_var dwv_tmp;
if (library_name && profile_name)
@@ -60,9 +59,9 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::configuration_complete (
"internal represenation.\n"));
throw ::CORBA::INTERNAL ();
}
- this->ccm_dds_writer_.set_impl (rw->get_impl ());
- this->dds_update_.set_impl (&this->ccm_dds_writer_);
- this->dds_update_._set_component (component);
+ this->ccm_dds_writer_->set_impl (rw->get_impl ());
+ this->dds_update_->set_impl (this->ccm_dds_writer_);
+ this->dds_update_->_set_component (component);
}
}
@@ -78,7 +77,7 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::activate ()
::CORBA::NO_MEMORY ());
}
- ::DDS::ReturnCode_t const retcode = this->ccm_dds_writer_.set_listener (
+ ::DDS::ReturnCode_t const retcode = this->ccm_dds_writer_->set_listener (
this->data_listener_.in (),
DataWriterListener_type::get_mask ());
@@ -97,9 +96,10 @@ void
DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::passivate ()
{
DDS4CCM_TRACE ("DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::passivate");
- ::DDS::ReturnCode_t const retcode = this->ccm_dds_writer_.set_listener (
- ::DDS::DataWriterListener::_nil (),
- 0);
+
+ ::DDS::ReturnCode_t const retcode =
+ this->ccm_dds_writer_->set_listener (::DDS::DataWriterListener::_nil (), 0);
+
if (retcode != ::DDS::RETCODE_OK)
{
DDS4CCM_ERROR (DDS4CCM_LOG_LEVEL_ERROR, (LM_ERROR, CLINFO
@@ -119,7 +119,7 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::remove (
{
DDS4CCM_TRACE ("DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::remove");
::DDS::ReturnCode_t const retval =
- publisher->delete_datawriter (&this->ccm_dds_writer_);
+ publisher->delete_datawriter (this->ccm_dds_writer_);
if (retval != ::DDS::RETCODE_OK)
{
DDS4CCM_ERROR (DDS4CCM_LOG_LEVEL_ERROR, (LM_ERROR, CLINFO
@@ -128,22 +128,22 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::remove (
::CIAO::DDS4CCM::translate_retcode (retval)));
throw ::CORBA::INTERNAL ();
}
- this->ccm_dds_writer_.set_impl (0);
- this->dds_update_._set_component (CCM_TYPE::base_type::_nil ());
- this->dds_update_.set_impl (0);
+ this->ccm_dds_writer_->set_impl (0);
+ this->dds_update_->_set_component (CCM_TYPE::base_type::_nil ());
+ this->dds_update_->set_impl (0);
}
template <typename DDS_TYPE, typename CCM_TYPE, DDS4CCM_Vendor VENDOR_TYPE>
typename CCM_TYPE::updater_type::_ptr_type
DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::get_data (void)
{
- return CCM_TYPE::updater_type::_duplicate (&this->dds_update_);
+ return CCM_TYPE::updater_type::_duplicate (this->dds_update_);
}
template <typename DDS_TYPE, typename CCM_TYPE, DDS4CCM_Vendor VENDOR_TYPE>
::DDS::CCM_DataWriter_ptr
DDS_Update_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::get_dds_entity (void)
{
- return ::DDS::CCM_DataWriter::_duplicate (&this->ccm_dds_writer_);
+ return ::DDS::CCM_DataWriter::_duplicate (this->ccm_dds_writer_);
}
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_Update_T.h b/CIAO/connectors/dds4ccm/impl/DDS_Update_T.h
index 089282931ff..af805f53685 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_Update_T.h
+++ b/CIAO/connectors/dds4ccm/impl/DDS_Update_T.h
@@ -35,18 +35,21 @@ public:
void remove (::DDS::Publisher_ptr publisher);
private:
- /**
+ typedef ::CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ DataWriterListener_type;
+ typedef ::CIAO::DDS4CCM::CCM_DDS_DataWriter_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ DataWriter_type;
+ typedef ::CIAO::DDS4CCM::Updater_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ Updater_type;
+
+ /**
* DDS_Update
*/
//@{
::DDS::DataWriterListener_var data_listener_;
- ::CIAO::DDS4CCM::Updater_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE> dds_update_;
- ::CIAO::DDS4CCM::CCM_DDS_DataWriter_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE> ccm_dds_writer_;
+ ::CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<Updater_type> dds_update_;
+ ::CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<DataWriter_type> ccm_dds_writer_;
//@}
- typedef ::CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- DataWriterListener_type;
- typedef ::CIAO::DDS4CCM::CCM_DDS_DataWriter_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- DataWriter_type;
};
#include "dds4ccm/impl/DDS_Update_T.cpp"
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_Write_T.cpp b/CIAO/connectors/dds4ccm/impl/DDS_Write_T.cpp
index 42fa4a86dd8..3d3bedce7e7 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_Write_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/DDS_Write_T.cpp
@@ -8,8 +8,7 @@
#include "dds4ccm/impl/Log_Macros.h"
template <typename DDS_TYPE, typename CCM_TYPE, DDS4CCM_Vendor VENDOR_TYPE>
-DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::DDS_Write_T (void) :
- ccm_dds_writer_ (0)
+DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::DDS_Write_T (void)
{
}
@@ -29,7 +28,7 @@ DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::configuration_complete (
{
DDS4CCM_TRACE ("DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::configuration_complete");
- if (!this->ccm_dds_writer_.get_impl ())
+ if (!this->ccm_dds_writer_->get_impl ())
{
::DDS::DataWriter_var dwv_tmp;
if (library_name && profile_name)
@@ -59,9 +58,9 @@ DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::configuration_complete (
"internal represenation.\n"));
throw ::CORBA::INTERNAL ();
}
- this->ccm_dds_writer_.set_impl (rw->get_impl ());
- this->writer_t_.set_impl (&this->ccm_dds_writer_);
- this->writer_t_._set_component (component);
+ this->ccm_dds_writer_->set_impl (rw->get_impl ());
+ this->writer_t_->set_impl (this->ccm_dds_writer_);
+ this->writer_t_->_set_component (component);
}
}
template <typename DDS_TYPE, typename CCM_TYPE, DDS4CCM_Vendor VENDOR_TYPE>
@@ -76,9 +75,11 @@ DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::activate ()
DataWriterListener_type (),
::CORBA::NO_MEMORY ());
}
- ::DDS::ReturnCode_t const retcode = this->ccm_dds_writer_.set_listener (
- this->data_listener_.in (),
- DataWriterListener_type::get_mask ());
+
+ ::DDS::ReturnCode_t const retcode =
+ this->ccm_dds_writer_->set_listener (this->data_listener_.in (),
+ DataWriterListener_type::get_mask ());
+
if (retcode != DDS::RETCODE_OK)
{
DDS4CCM_ERROR (DDS4CCM_LOG_LEVEL_ERROR, (LM_ERROR, CLINFO
@@ -95,9 +96,9 @@ DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::passivate ()
{
DDS4CCM_TRACE ("DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::passivate");
- ::DDS::ReturnCode_t const retcode = this->ccm_dds_writer_.set_listener (
- ::DDS::DataWriterListener::_nil (),
- 0);
+ ::DDS::ReturnCode_t const retcode =
+ this->ccm_dds_writer_->set_listener (::DDS::DataWriterListener::_nil (), 0);
+
if (retcode != ::DDS::RETCODE_OK)
{
DDS4CCM_ERROR (DDS4CCM_LOG_LEVEL_ERROR, (LM_ERROR, CLINFO
@@ -118,12 +119,13 @@ DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::remove (
DDS4CCM_TRACE ("DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::remove");
DDS::ReturnCode_t const retcode =
- publisher->delete_datawriter (&this->ccm_dds_writer_);
+ publisher->delete_datawriter (this->ccm_dds_writer_);
+
if (retcode == ::DDS::RETCODE_OK)
{
- this->ccm_dds_writer_.set_impl (0);
- this->writer_t_._set_component (CCM_TYPE::base_type::_nil ());
- this->writer_t_.set_impl (0);
+ this->ccm_dds_writer_->set_impl (0);
+ this->writer_t_->_set_component (CCM_TYPE::base_type::_nil ());
+ this->writer_t_->set_impl (0);
}
else
{
@@ -138,7 +140,7 @@ DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::get_data (void)
{
DDS4CCM_TRACE ("DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::get_data");
- return CCM_TYPE::writer_type::_duplicate (&this->writer_t_);
+ return CCM_TYPE::writer_type::_duplicate (this->writer_t_);
}
template <typename DDS_TYPE, typename CCM_TYPE, DDS4CCM_Vendor VENDOR_TYPE>
@@ -147,6 +149,6 @@ DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::get_dds_entity (void)
{
DDS4CCM_TRACE ("DDS_Write_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::get_dds_entity");
- return ::DDS::CCM_DataWriter::_duplicate (&this->ccm_dds_writer_);
+ return ::DDS::CCM_DataWriter::_duplicate (this->ccm_dds_writer_);
}
diff --git a/CIAO/connectors/dds4ccm/impl/DDS_Write_T.h b/CIAO/connectors/dds4ccm/impl/DDS_Write_T.h
index 8450f6dd77f..92108699563 100644
--- a/CIAO/connectors/dds4ccm/impl/DDS_Write_T.h
+++ b/CIAO/connectors/dds4ccm/impl/DDS_Write_T.h
@@ -42,20 +42,22 @@ public:
void remove (::DDS::Publisher_ptr publisher);
-private:
+private:
+ typedef ::CIAO::DDS4CCM::Writer_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE> Writer_type;
+ typedef ::CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ DataWriterListener_type;
+ typedef ::CIAO::DDS4CCM::CCM_DDS_DataWriter_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
+ DataWriter_type;
+
/**
* DDS_Write
*/
//@{
::DDS::DataWriterListener_var data_listener_;
- ::CIAO::DDS4CCM::Writer_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE> writer_t_;
- ::CIAO::DDS4CCM::CCM_DDS_DataWriter_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE> ccm_dds_writer_;
+ ::CIAO::DDS4CCM::LocalObject_Auto_Ptr_T < Writer_type > writer_t_;
+ ::CIAO::DDS4CCM::LocalObject_Auto_Ptr_T < DataWriter_type > ccm_dds_writer_;
//@}
- typedef ::CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- DataWriterListener_type;
- typedef ::CIAO::DDS4CCM::CCM_DDS_DataWriter_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
- DataWriter_type;
};
#include "dds4ccm/impl/DDS_Write_T.cpp"
diff --git a/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.cpp b/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.cpp
index 21918dcbd3c..22cba82a624 100644
--- a/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.cpp
@@ -8,12 +8,12 @@ template <typename DDS_TYPE, typename CCM_TYPE, DDS4CCM_Vendor VENDOR_TYPE>
CIAO::DDS4CCM::DataReaderListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::DataReaderListener_T (
typename CCM_TYPE::listener_type::_ptr_type listener,
::CCM_DDS::PortStatusListener_ptr port_status_listener,
- DataListenerControl_type& control,
+ ::CCM_DDS::DataListenerControl_ptr control,
ACE_Reactor * reactor,
ConditionManager_type& condition_manager)
: PortStatusListener_T <DDS_TYPE, CCM_TYPE, VENDOR_TYPE> (port_status_listener, reactor) ,
listener_ (CCM_TYPE::listener_type::_duplicate (listener)),
- control_ (control),
+ control_ (::CCM_DDS::DataListenerControl::_duplicate (control)),
condition_manager_ (condition_manager)
{
DDS4CCM_TRACE ("CIAO::DDS4CCM::DataReaderListener_T::DataReaderListener_T");
@@ -33,7 +33,7 @@ CIAO::DDS4CCM::DataReaderListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::on_data_av
DDS4CCM_TRACE ("CIAO::DDS4CCM::DataReaderListener_T::on_data_available");
if (!::CORBA::is_nil (rdr) &&
- this->control_.mode () != ::CCM_DDS::NOT_ENABLED)
+ this->control_->mode () != ::CCM_DDS::NOT_ENABLED)
{
if (this->reactor_)
{
@@ -62,7 +62,7 @@ CIAO::DDS4CCM::DataReaderListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::on_data_av
DDS4CCM_TRACE ("CIAO::DDS4CCM::DataReaderListener_T::on_data_available_i");
if (::CORBA::is_nil (rdr) ||
- this->control_.mode () == ::CCM_DDS::NOT_ENABLED)
+ this->control_->mode () == ::CCM_DDS::NOT_ENABLED)
{
return;
}
@@ -100,7 +100,7 @@ CIAO::DDS4CCM::DataReaderListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::on_data_av
return;
}
- if (this->control_.mode () == ::CCM_DDS::ONE_BY_ONE)
+ if (this->control_->mode () == ::CCM_DDS::ONE_BY_ONE)
{
for (::DDS_Long i = 0; i < data.length (); ++i)
{
diff --git a/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.h b/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.h
index ac62eb722ae..722b5681edb 100644
--- a/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.h
+++ b/CIAO/connectors/dds4ccm/impl/DataReaderListener_T.h
@@ -11,8 +11,6 @@
#define DATAREADERLISTENER_T_H_
#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
-
-#include "dds4ccm/impl/DataListenerControl_T.h"
#include "dds4ccm/impl/PortStatusListener_T.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -33,15 +31,13 @@ namespace CIAO
PortStatusListener_type;
typedef ::CIAO::DDS4CCM::ConditionManager_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
ConditionManager_type;
- typedef CCM_DDS_DataListenerControl_T< ::CCM_DDS::CCM_DataListenerControl, CCM_TYPE>
- DataListenerControl_type;
public:
/// Constructor
- DataReaderListener_T (
+ explicit DataReaderListener_T (
typename CCM_TYPE::listener_type::_ptr_type listener,
::CCM_DDS::PortStatusListener_ptr port_status_listener,
- DataListenerControl_type& control,
+ ::CCM_DDS::DataListenerControl_ptr control,
ACE_Reactor * reactor,
ConditionManager_type& condition_manager);
@@ -57,7 +53,7 @@ namespace CIAO
private:
typename CCM_TYPE::listener_type::_var_type listener_;
- DataListenerControl_type& control_;
+ ::CCM_DDS::DataListenerControl_var control_;
ConditionManager_type& condition_manager_;
};
}
diff --git a/CIAO/connectors/dds4ccm/impl/DataReaderStateListener_T.cpp b/CIAO/connectors/dds4ccm/impl/DataReaderStateListener_T.cpp
index 3d3bf2119d1..d8943fb76ef 100644
--- a/CIAO/connectors/dds4ccm/impl/DataReaderStateListener_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/DataReaderStateListener_T.cpp
@@ -11,12 +11,12 @@ template <typename DDS_TYPE, typename CCM_TYPE, DDS4CCM_Vendor VENDOR_TYPE>
CIAO::DDS4CCM::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::DataReaderStateListener_T (
typename CCM_TYPE::statelistener_type::_ptr_type listener,
::CCM_DDS::PortStatusListener_ptr port_status_listener,
- StateListenerControl_type& control,
+ ::CCM_DDS::StateListenerControl_ptr control,
ACE_Reactor* reactor,
ConditionManager_type& condition_manager)
: PortStatusListener_T <DDS_TYPE, CCM_TYPE, VENDOR_TYPE> (port_status_listener, reactor) ,
listener_ (CCM_TYPE::statelistener_type::_duplicate (listener)),
- control_ (control),
+ control_ (::CCM_DDS::StateListenerControl::_duplicate (control)),
condition_manager_ (condition_manager)
{
DDS4CCM_TRACE ("CIAO::DDS4CCM::DataReaderStateListener_T::DataReaderStateListener_T");
@@ -36,7 +36,7 @@ CIAO::DDS4CCM::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::on_da
{
DDS4CCM_TRACE ("CIAO::DDS4CCM::DataReaderStateListener_T::on_data_available");
if (!::CORBA::is_nil (rdr) &&
- this->control_.mode () != ::CCM_DDS::NOT_ENABLED)
+ this->control_->mode () != ::CCM_DDS::NOT_ENABLED)
{
if (this->reactor_)
{
@@ -65,7 +65,7 @@ CIAO::DDS4CCM::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::on_da
DDS4CCM_TRACE ("CIAO::DDS4CCM::DataReaderStateListener_T::on_data_available_i");
if (::CORBA::is_nil (rdr) ||
- this->control_.mode () == ::CCM_DDS::NOT_ENABLED)
+ this->control_->mode () == ::CCM_DDS::NOT_ENABLED)
{
return;
}
@@ -88,11 +88,11 @@ CIAO::DDS4CCM::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::on_da
::DDS_SampleInfoSeq sample_info;
::DDS_Long max_samples = 0;
- this->control_.mode () == ::CCM_DDS::ONE_BY_ONE
+ this->control_->mode () == ::CCM_DDS::ONE_BY_ONE
? max_samples = DDS_LENGTH_UNLIMITED
- : this->control_.max_delivered_data() == 0
+ : this->control_->max_delivered_data() == 0
? max_samples = DDS_LENGTH_UNLIMITED
- : max_samples = this->control_.max_delivered_data ();
+ : max_samples = this->control_->max_delivered_data ();
::DDS::ReturnCode_t const result = reader->take (
data,
@@ -109,7 +109,7 @@ CIAO::DDS4CCM::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::on_da
ACE_TEXT ("Unable to take data from data reader, ")
ACE_TEXT ("error %d.\n"), result));
}
- if (this->control_.mode () == ::CCM_DDS::ONE_BY_ONE)
+ if (this->control_->mode () == ::CCM_DDS::ONE_BY_ONE)
{
for (::DDS_Long i = 0; i < data.length (); ++i)
{
@@ -140,7 +140,7 @@ CIAO::DDS4CCM::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>::on_da
}
}
}
- else if (this->control_.mode () == ::CCM_DDS::MANY_BY_MANY)
+ else if (this->control_->mode () == ::CCM_DDS::MANY_BY_MANY)
{
typedef std::vector<DDS_Long> Updates;
Updates updates;
diff --git a/CIAO/connectors/dds4ccm/impl/DataReaderStateListener_T.h b/CIAO/connectors/dds4ccm/impl/DataReaderStateListener_T.h
index 61b5d5b0e26..ac45cc5b866 100644
--- a/CIAO/connectors/dds4ccm/impl/DataReaderStateListener_T.h
+++ b/CIAO/connectors/dds4ccm/impl/DataReaderStateListener_T.h
@@ -25,15 +25,13 @@ namespace CIAO
ConditionManager_type;
typedef ::CIAO::DDS4CCM::DataReaderStateHandler_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE>
DataReaderStateHandler_type;
- typedef CCM_DDS_StateListenerControl_T< ::CCM_DDS::CCM_StateListenerControl, CCM_TYPE>
- StateListenerControl_type;
public:
/// Constructor
DataReaderStateListener_T (
typename CCM_TYPE::statelistener_type::_ptr_type listener,
::CCM_DDS::PortStatusListener_ptr port_status_listener,
- StateListenerControl_type& control,
+ ::CCM_DDS::StateListenerControl_ptr control,
ACE_Reactor* reactor,
ConditionManager_type& condition_manager);
@@ -49,7 +47,7 @@ namespace CIAO
private:
typename CCM_TYPE::statelistener_type::_var_type listener_;
- StateListenerControl_type& control_;
+ ::CCM_DDS::StateListenerControl_var control_;
ConditionManager_type& condition_manager_;
};
}
diff --git a/CIAO/connectors/dds4ccm/impl/DataReader_T.h b/CIAO/connectors/dds4ccm/impl/DataReader_T.h
index 9b488f6fee6..1277958055f 100644
--- a/CIAO/connectors/dds4ccm/impl/DataReader_T.h
+++ b/CIAO/connectors/dds4ccm/impl/DataReader_T.h
@@ -52,7 +52,7 @@ namespace CIAO
typedef DataReader_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE> DataReader_type;
public:
/// Constructor
- DataReader_T (DDSDataReader * dr);
+ explicit DataReader_T (DDSDataReader * dr = 0);
/// Destructor
virtual ~DataReader_T (void);
diff --git a/CIAO/connectors/dds4ccm/impl/DataWriter_T.h b/CIAO/connectors/dds4ccm/impl/DataWriter_T.h
index 5225d665ef7..c825212abae 100644
--- a/CIAO/connectors/dds4ccm/impl/DataWriter_T.h
+++ b/CIAO/connectors/dds4ccm/impl/DataWriter_T.h
@@ -48,7 +48,7 @@ namespace CIAO
typedef CCM_DDS_Topic_T<DDS_TYPE, CCM_TYPE, VENDOR_TYPE> Topic_type;
public:
- explicit CCM_DDS_DataWriter_T (DDSDataWriter * dw);
+ explicit CCM_DDS_DataWriter_T (DDSDataWriter * dw = 0);
virtual ::DDS::ReturnCode_t set_qos (const ::DDS::DataWriterQos & qos);
diff --git a/CIAO/connectors/dds4ccm/impl/LocalObject_T.cpp b/CIAO/connectors/dds4ccm/impl/LocalObject_T.cpp
index 3ae8281912e..f6d1133a536 100644
--- a/CIAO/connectors/dds4ccm/impl/LocalObject_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/LocalObject_T.cpp
@@ -24,3 +24,28 @@ CIAO::DDS4CCM::LocalObject_T<CCM_TYPE>::_set_component (
{
this->component_ = CCM_TYPE::base_type::_duplicate (component);
}
+
+template <typename LOCAL_OBJECT>
+CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<LOCAL_OBJECT>::LocalObject_Auto_Ptr_T (void) : l (new LOCAL_OBJECT)
+{
+}
+
+template <typename LOCAL_OBJECT>
+CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<LOCAL_OBJECT>::~LocalObject_Auto_Ptr_T (void)
+{
+ ::CORBA::release (l);
+}
+
+template <typename LOCAL_OBJECT>
+LOCAL_OBJECT*
+CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<LOCAL_OBJECT>::operator-> (void) const
+{
+ return this->l;
+}
+
+template <typename LOCAL_OBJECT>
+CIAO::DDS4CCM::LocalObject_Auto_Ptr_T<LOCAL_OBJECT>::operator LOCAL_OBJECT *& (void)
+{
+ return this->l;
+}
+
diff --git a/CIAO/connectors/dds4ccm/impl/LocalObject_T.h b/CIAO/connectors/dds4ccm/impl/LocalObject_T.h
index b18b651fd2a..993b88af67a 100644
--- a/CIAO/connectors/dds4ccm/impl/LocalObject_T.h
+++ b/CIAO/connectors/dds4ccm/impl/LocalObject_T.h
@@ -24,6 +24,25 @@ namespace CIAO
private:
typename CCM_TYPE::base_type::_var_type component_;
};
+
+ /**
+ * Helper template that allocates a new LOCAL_OBJECT from the heap and that
+ * makes sure we call ::CORBA::release() at destruction
+ */
+ template <typename LOCAL_OBJECT>
+ class LocalObject_Auto_Ptr_T : private ACE_Copy_Disabled
+ {
+ public:
+ LocalObject_Auto_Ptr_T (void);
+
+ ~LocalObject_Auto_Ptr_T (void);
+
+ LOCAL_OBJECT* operator-> (void) const;
+
+ operator LOCAL_OBJECT *& (void);
+ private:
+ LOCAL_OBJECT* l;
+ };
}
}
diff --git a/CIAO/connectors/dds4ccm/tests/ListenNotEnabled/Sender/LNE_Test_Sender_exec.cpp b/CIAO/connectors/dds4ccm/tests/ListenNotEnabled/Sender/LNE_Test_Sender_exec.cpp
index 6d7392a7da1..b0f7300cb0a 100644
--- a/CIAO/connectors/dds4ccm/tests/ListenNotEnabled/Sender/LNE_Test_Sender_exec.cpp
+++ b/CIAO/connectors/dds4ccm/tests/ListenNotEnabled/Sender/LNE_Test_Sender_exec.cpp
@@ -55,8 +55,8 @@ namespace CIAO_LNE_Test_Sender_Impl
}
}
-::LNE_Test::ListenNotEnabledTestConnector::Writer_var writer =
- this->context_->get_connection_info_write_data ();
+ ::LNE_Test::ListenNotEnabledTestConnector::Writer_var writer =
+ this->context_->get_connection_info_write_data ();
try
{