summaryrefslogtreecommitdiff
path: root/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp')
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp
new file mode 100644
index 00000000000..5b4e276f614
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp
@@ -0,0 +1,67 @@
+// $Id$
+
+#include "dds4ccm/impl/ndds/Utils.h"
+
+#include "dds4ccm/impl/ndds/DataReader.h"
+#include "dds4ccm/impl/logger/Log_Macros.h"
+
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>::DataReaderHandler_T (
+ typename CIAO::DDS4CCM::DataReaderListener_T<DDS_TYPE, CCM_TYPE>* drl,
+ ::DDS::DataReader_ptr dr)
+ : drl_ (drl),
+ dr_ (::DDS::DataReader::_duplicate (dr))
+{
+ this->reference_counting_policy ().value
+ (ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>::~DataReaderHandler_T (void)
+{
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+int
+CIAO::DDS4CCM::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>::handle_exception (ACE_HANDLE)
+{
+ try
+ {
+ this->drl_->on_data_available_i (this->dr_.in ());
+ }
+ catch (...)
+ {
+ }
+ return 0;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::DataReaderStateHandler_T<DDS_TYPE, CCM_TYPE>::DataReaderStateHandler_T (
+ typename CIAO::DDS4CCM::DataReaderStateListener_T<DDS_TYPE, CCM_TYPE>* drl,
+ ::DDS::DataReader_ptr dr)
+ : drl_ (drl),
+ dr_ (::DDS::DataReader::_duplicate (dr))
+{
+ this->reference_counting_policy ().value
+ (ACE_Event_Handler::Reference_Counting_Policy::ENABLED);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::DataReaderStateHandler_T<DDS_TYPE, CCM_TYPE>::~DataReaderStateHandler_T (void)
+{
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+int
+CIAO::DDS4CCM::DataReaderStateHandler_T<DDS_TYPE, CCM_TYPE>::handle_exception (ACE_HANDLE)
+{
+ try
+ {
+ this->drl_->on_data_available_i (this->dr_.in ());
+ }
+ catch (...)
+ {
+ }
+ return 0;
+}