summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/dds4ccm/impl/ndds/TopicListener.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/connectors/dds4ccm/impl/ndds/TopicListener.cpp')
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/TopicListener.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/TopicListener.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/TopicListener.cpp
new file mode 100644
index 00000000000..6e9af8c839b
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/TopicListener.cpp
@@ -0,0 +1,47 @@
+// $Id$
+
+#include "TopicListener.h"
+#include "Topic.h"
+#include "InconsistentTopicStatus.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ RTI_TopicListener_i::RTI_TopicListener_i (::DDS::TopicListener_ptr p)
+ : impl_ (::DDS::TopicListener::_duplicate (p))
+ {
+ }
+
+ RTI_TopicListener_i::~RTI_TopicListener_i (void)
+ {
+ }
+
+ void
+ RTI_TopicListener_i::on_inconsistent_topic (
+ ::DDSTopic* the_topic,
+ const ::DDS_InconsistentTopicStatus & status)
+ {
+ ::DDS::InconsistentTopicStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::Topic_var dds_topic = new RTI_Topic_i ();
+ RTI_Topic_i *tp = dynamic_cast < RTI_Topic_i *> (dds_topic.in ());
+ tp->set_impl (the_topic);
+ this->impl_->on_inconsistent_topic (dds_topic.in (), ddsstatus);
+ }
+
+ ::DDS::TopicListener_ptr
+ RTI_TopicListener_i::get_topiclistener (void)
+ {
+ return ::DDS::TopicListener::_duplicate (this->impl_.in ());
+ }
+ }
+ }
+}
+