diff options
Diffstat (limited to 'CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp')
-rw-r--r-- | CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp | 67 |
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; +} |