diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2009-12-08 15:20:50 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2009-12-08 15:20:50 +0000 |
commit | 5059cfdff7abb63e7ab310f66cd32f5f5ba33971 (patch) | |
tree | 9b355b85ded07355ad14834c7690fbc1d9624203 | |
parent | 00e644a2621850a8a38f3ae14b375ecc9c8fee77 (diff) | |
download | ATCD-5059cfdff7abb63e7ab310f66cd32f5f5ba33971.tar.gz |
Tue Dec 8 15:20:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
* connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp
* connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h
* connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp
* connectors/dds4ccm/impl/ndds/DDS_Update_T.h
Cache dds executors
-rw-r--r-- | CIAO/ChangeLog | 8 | ||||
-rw-r--r-- | CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp | 14 | ||||
-rw-r--r-- | CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h | 1 | ||||
-rw-r--r-- | CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp | 46 | ||||
-rw-r--r-- | CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.h | 3 |
5 files changed, 43 insertions, 29 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog index d5f4fef4ab7..b535b23b549 100644 --- a/CIAO/ChangeLog +++ b/CIAO/ChangeLog @@ -1,3 +1,11 @@ +Tue Dec 8 15:20:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl> + + * connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp + * connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h + * connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp + * connectors/dds4ccm/impl/ndds/DDS_Update_T.h + Cache dds executors + Tue Dec 8 15:17:44 UTC 2009 Marcel Smit <msmit@remedy.nl> * connectors/dds4ccm/tests/Reader/Receiver/Reader_Test_Receiver_exec.cpp: diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp index 8501ba8e518..a043facbd1c 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp @@ -68,6 +68,12 @@ DDS_StateListen_T<DDS_TYPE, CCM_TYPE>::init ( this->data_reader_ = ::DDS::CCM_DataReader::_narrow (reader); } } + if (CORBA::is_nil (this->dds_read_.in ()) && + !CORBA::is_nil (this->data_reader_.in ())) + { + this->dds_read_ = new CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> ( + this->data_reader_.in ()); + } } catch (...) { @@ -82,8 +88,7 @@ DDS_StateListen_T<DDS_TYPE, CCM_TYPE>::get_data (void) { CIAO_TRACE ("DDS_StateListen_T<DDS_TYPE, CCM_TYPE>::get_data"); - return new CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> ( - this->data_reader_.in ()); + return CCM_TYPE::reader_type::_duplicate (this->dds_read_.in ()); } template <typename DDS_TYPE, typename CCM_TYPE> @@ -92,7 +97,7 @@ DDS_StateListen_T<DDS_TYPE, CCM_TYPE>::get_dds_entity (void) { CIAO_TRACE ("DDS_StateListen_T<DDS_TYPE, CCM_TYPE>::get_dds_entity"); - return this->data_reader_.in (); + return ::DDS::CCM_DataReader::_duplicate (this->data_reader_.in ()); } template <typename DDS_TYPE, typename CCM_TYPE> @@ -101,6 +106,7 @@ DDS_StateListen_T<DDS_TYPE, CCM_TYPE>::get_data_control (void) { CIAO_TRACE ("DDS_StateListen_T<DDS_TYPE, CCM_TYPE>::get_data_control"); - return this->data_control_.in (); + return ::CCM_DDS::CCM_StateListenerControl::_duplicate ( + this->data_control_.in ()); } diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h index e9a3cc153af..427c75ec3d3 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h @@ -43,6 +43,7 @@ private: ::DDS::CCM_DataReader_var data_reader_; ::CCM_DDS::CCM_StateListenerControl_var data_control_; ::DDS::DataReaderListener_var data_listener_; + typename CCM_TYPE::reader_type::_var_type dds_read_; //@} }; diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp index baaf5e394d5..7b393be0cee 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp @@ -4,12 +4,6 @@ #include "dds4ccm/impl/ndds/DataReaderStateListener_T.h" #include "dds4ccm/impl/ndds/DataWriterListener_T.h" #include "dds4ccm/impl/ndds/Updater_T.h" -#include "dds4ccm/impl/ndds/Reader_T.h" -#include "dds4ccm/impl/ndds/PublisherListener_T.h" -#include "dds4ccm/impl/ndds/SubscriberListener_T.h" -#include "dds4ccm/impl/ndds/DataListenerControl_T.h" -#include "dds4ccm/impl/ndds/StateListenerControl_T.h" -#include "dds4ccm/impl/ndds/PortStatusListener_T.h" #include "ciao/Logger/Log_Macros.h" @@ -24,21 +18,6 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE>::~DDS_Update_T (void) } template <typename DDS_TYPE, typename CCM_TYPE> -typename CCM_TYPE::updater_type::_ptr_type -DDS_Update_T<DDS_TYPE, CCM_TYPE>::get_data (void) -{ - return new CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE> - (this->data_.in ()); -} - -template <typename DDS_TYPE, typename CCM_TYPE> -::DDS::CCM_DataWriter_ptr -DDS_Update_T<DDS_TYPE, CCM_TYPE>::get_dds_entity (void) -{ - return this->data_.in (); -} - -template <typename DDS_TYPE, typename CCM_TYPE> void DDS_Update_T<DDS_TYPE, CCM_TYPE>::init ( ::DDS::Topic_ptr topic, @@ -48,7 +27,7 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE>::init ( { try { - if (CORBA::is_nil (this->data_.in ())) + if (CORBA::is_nil (this->data_writer_.in ())) { this->data_listener_ = new ::CIAO::DDS4CCM::DataWriterListener_T <DDS_TYPE, CCM_TYPE> (); @@ -62,7 +41,7 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE>::init ( profile_name, this->data_listener_.in (), ::CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); - this->data_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp); + this->data_writer_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp); } else { @@ -73,9 +52,15 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE>::init ( dwqos, this->data_listener_.in (), ::CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::get_mask ()); - this->data_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp); + this->data_writer_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp); } } + if (CORBA::is_nil (this->dds_update_.in ()) && + !CORBA::is_nil (this->data_writer_.in ())) + { + this->dds_update_ = new CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE> ( + this->data_writer_.in ()); + } } catch (...) { @@ -84,4 +69,17 @@ DDS_Update_T<DDS_TYPE, CCM_TYPE>::init ( } } +template <typename DDS_TYPE, typename CCM_TYPE> +typename CCM_TYPE::updater_type::_ptr_type +DDS_Update_T<DDS_TYPE, CCM_TYPE>::get_data (void) +{ + return CCM_TYPE::updater_type::_duplicate (this->dds_update_.in ()); +} + +template <typename DDS_TYPE, typename CCM_TYPE> +::DDS::CCM_DataWriter_ptr +DDS_Update_T<DDS_TYPE, CCM_TYPE>::get_dds_entity (void) +{ + return ::DDS::CCM_DataWriter::_duplicate (this->data_writer_.in ()); +} diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.h index 08eb196e5f9..5d1e4f92b9e 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.h @@ -30,8 +30,9 @@ private: * DDS_Update */ //@{ - ::DDS::CCM_DataWriter_var data_; + ::DDS::CCM_DataWriter_var data_writer_; ::DDS::DataWriterListener_var data_listener_; + typename CCM_TYPE::updater_type::_var_type dds_update_; //@} }; |