summaryrefslogtreecommitdiff
path: root/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.cpp')
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.cpp112
1 files changed, 112 insertions, 0 deletions
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.cpp b/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.cpp
new file mode 100644
index 00000000000..8cd479f7d89
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.cpp
@@ -0,0 +1,112 @@
+// $Id$
+
+#include "PublisherListener.h"
+#include "Publisher.h"
+#include "DataWriter.h"
+#include "PublicationMatchedStatus.h"
+#include "LivelinessLostStatus.h"
+#include "OfferedIncompatibleQosStatus.h"
+#include "OfferedDeadlineMissedStatus.h"
+#include "dds4ccm/impl/logger/Log_Macros.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ CCM_DDS_PublisherListener_i::CCM_DDS_PublisherListener_i ( ::DDS::PublisherListener_ptr p)
+ : impl_ (::DDS::PublisherListener::_duplicate (p))
+ {
+ DDS4CCM_TRACE ("CCM_DDS_PublisherListener_i::CCM_DDS_PublisherListener_i");
+ }
+
+ CCM_DDS_PublisherListener_i::~CCM_DDS_PublisherListener_i (void)
+ {
+ DDS4CCM_TRACE ("CCM_DDS_PublisherListener_i::~CCM_DDS_PublisherListener_i");
+ }
+
+ void
+ CCM_DDS_PublisherListener_i::on_offered_deadline_missed (
+ ::DDSDataWriter* writer,
+ const ::DDS_OfferedDeadlineMissedStatus & status)
+ {
+ DDS4CCM_TRACE ("CCM_DDS_PublisherListener_i::on_offered_deadline_missed");
+
+ ::DDS::DataWriter_var dds_writer = ::DDS::DataWriter::_nil ();
+ ACE_NEW (dds_writer,
+ CCM_DDS_DataWriter_i (writer));
+#if defined (CIAO_DDS4CCM_NDDS) && (CIAO_DDS4CCM_NDDS==1)
+ ::DDS::OfferedDeadlineMissedStatus ddsstatus;
+ ddsstatus <<= status;
+ this->impl_->on_offered_deadline_missed (dds_writer.in (), ddsstatus);
+#else
+ this->impl_->on_offered_deadline_missed (dds_writer.in (), status);
+#endif
+ }
+
+ void
+ CCM_DDS_PublisherListener_i::on_offered_incompatible_qos (
+ ::DDSDataWriter* writer,
+ const ::DDS_OfferedIncompatibleQosStatus & status)
+ {
+ DDS4CCM_TRACE ("CCM_DDS_PublisherListener_i::on_offered_incompatible_qos");
+
+ ::DDS::DataWriter_var dds_writer = ::DDS::DataWriter::_nil ();
+ ACE_NEW (dds_writer,
+ CCM_DDS_DataWriter_i (writer));
+#if defined (CIAO_DDS4CCM_NDDS) && (CIAO_DDS4CCM_NDDS==1)
+ ::DDS::OfferedIncompatibleQosStatus ddsstatus;
+ ddsstatus <<= status;
+ this->impl_->on_offered_incompatible_qos (dds_writer.in (), ddsstatus);
+#else
+ this->impl_->on_offered_incompatible_qos (dds_writer.in (), status);
+#endif
+ }
+
+ void
+ CCM_DDS_PublisherListener_i::on_liveliness_lost (
+ ::DDSDataWriter* writer,
+ const ::DDS_LivelinessLostStatus & status)
+ {
+ DDS4CCM_TRACE ("CCM_DDS_PublisherListener_i::on_liveliness_lost");
+
+ ::DDS::DataWriter_var dds_writer = ::DDS::DataWriter::_nil ();
+ ACE_NEW (dds_writer,
+ CCM_DDS_DataWriter_i (writer));
+#if defined (CIAO_DDS4CCM_NDDS) && (CIAO_DDS4CCM_NDDS==1)
+ ::DDS::LivelinessLostStatus ddsstatus;
+ ddsstatus <<= status;
+ this->impl_->on_liveliness_lost (dds_writer.in (), ddsstatus);
+#else
+ this->impl_->on_liveliness_lost (dds_writer.in (), status);
+#endif
+ }
+
+ void
+ CCM_DDS_PublisherListener_i::on_publication_matched (
+ ::DDSDataWriter* writer,
+ const ::DDS_PublicationMatchedStatus & status)
+ {
+ DDS4CCM_TRACE ("CCM_DDS_PublisherListener_i::on_publication_matched");
+
+ ::DDS::DataWriter_var dds_writer = ::DDS::DataWriter::_nil ();
+ ACE_NEW (dds_writer,
+ CCM_DDS_DataWriter_i (writer));
+#if defined (CIAO_DDS4CCM_NDDS) && (CIAO_DDS4CCM_NDDS==1)
+ ::DDS::PublicationMatchedStatus ddsstatus;
+ ddsstatus <<= status;
+ this->impl_->on_publication_matched (dds_writer.in (), ddsstatus);
+#else
+ this->impl_->on_publication_matched (dds_writer.in (), status);
+#endif
+ }
+
+ ::DDS::PublisherListener_ptr
+ CCM_DDS_PublisherListener_i::get_publisher_listener (void)
+ {
+ return ::DDS::PublisherListener::_duplicate (this->impl_.in ());
+ }
+ }
+}
+