summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2009-12-08 15:20:50 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2009-12-08 15:20:50 +0000
commit5059cfdff7abb63e7ab310f66cd32f5f5ba33971 (patch)
tree9b355b85ded07355ad14834c7690fbc1d9624203
parent00e644a2621850a8a38f3ae14b375ecc9c8fee77 (diff)
downloadATCD-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/ChangeLog8
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.cpp14
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_StateListen_T.h1
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.cpp46
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Update_T.h3
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_;
//@}
};