summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/dds4ccm/tests/VariousTopicsState/Sender/VTopics_Sender_exec.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/connectors/dds4ccm/tests/VariousTopicsState/Sender/VTopics_Sender_exec.cpp')
-rw-r--r--modules/CIAO/connectors/dds4ccm/tests/VariousTopicsState/Sender/VTopics_Sender_exec.cpp140
1 files changed, 140 insertions, 0 deletions
diff --git a/modules/CIAO/connectors/dds4ccm/tests/VariousTopicsState/Sender/VTopics_Sender_exec.cpp b/modules/CIAO/connectors/dds4ccm/tests/VariousTopicsState/Sender/VTopics_Sender_exec.cpp
new file mode 100644
index 00000000000..059372ba636
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/tests/VariousTopicsState/Sender/VTopics_Sender_exec.cpp
@@ -0,0 +1,140 @@
+// -*- C++ -*-
+// $Id$
+
+
+//Test different topic types, with DDS_STATE connector, look for 'PUBLICATION_MATCHED_STATUS
+#include "VTopics_Sender_exec.h"
+#include "dds4ccm/impl/dds/Utils.h"
+
+namespace CIAO_VTopics_Sender_Impl
+{
+ //============================================================
+ // ConnectorStatusListener_exec_i
+ //============================================================
+ ConnectorStatusListener_exec_i::ConnectorStatusListener_exec_i (
+ Atomic_Boolean &publication_matched)
+ : publication_matched_ (publication_matched)
+ {
+ }
+
+ ConnectorStatusListener_exec_i::~ConnectorStatusListener_exec_i (void)
+ {
+ }
+
+ void ConnectorStatusListener_exec_i::on_inconsistent_topic(
+ ::DDS::Topic_ptr /*the_topic*/,
+ const DDS::InconsistentTopicStatus & /*status*/)
+ {
+ }
+
+ void ConnectorStatusListener_exec_i::on_requested_incompatible_qos (
+ ::DDS::DataReader_ptr /*the_reader*/,
+ const DDS::RequestedIncompatibleQosStatus & /*status*/)
+ {
+ }
+
+ void ConnectorStatusListener_exec_i::on_sample_rejected (
+ ::DDS::DataReader_ptr /*the_reader*/,
+ const DDS::SampleRejectedStatus & /*status*/)
+ {
+ }
+
+ void ConnectorStatusListener_exec_i::on_offered_deadline_missed (
+ ::DDS::DataWriter_ptr /*the_writer*/,
+ const DDS::OfferedDeadlineMissedStatus & /*status*/)
+ {
+ }
+
+ void ConnectorStatusListener_exec_i::on_offered_incompatible_qos (
+ ::DDS::DataWriter_ptr /*the_writer*/,
+ const DDS::OfferedIncompatibleQosStatus & /*status*/)
+ {
+ }
+
+ void ConnectorStatusListener_exec_i::on_unexpected_status (
+ ::DDS::Entity_ptr the_entity,
+ ::DDS::StatusKind status_kind)
+ {
+ if (! ::CORBA::is_nil (the_entity) &&
+ status_kind == DDS::PUBLICATION_MATCHED_STATUS)
+ {
+ this->publication_matched_ = true;
+ }
+ }
+ //============================================================
+ // Component Executor Implementation Class: Sender_exec_i
+ //============================================================
+
+ Sender_exec_i::Sender_exec_i (void)
+ : publication_matched_ (false)
+ {
+ }
+
+ Sender_exec_i::~Sender_exec_i (void)
+ {
+ }
+
+ ::CCM_DDS::CCM_ConnectorStatusListener_ptr
+ Sender_exec_i::get_connector_status (void)
+ {
+ return new ConnectorStatusListener_exec_i (this->publication_matched_);
+ }
+
+ // Supported operations and attributes.
+ void
+ Sender_exec_i::set_session_context (::Components::SessionContext_ptr ctx)
+ {
+ this->context_ = ::VTopics::CCM_Sender_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete (void)
+ {
+ }
+
+ void
+ Sender_exec_i::ccm_activate (void)
+ {
+ }
+
+ void
+ Sender_exec_i::ccm_passivate (void)
+ {
+ }
+
+ void
+ Sender_exec_i::ccm_remove (void)
+ {
+ if(!this->publication_matched_.value ())
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: did not receive the expected ")
+ ACE_TEXT ("states 'PUBLICATION_MATCHED_STATUS' ")
+ ACE_TEXT ("in Sender\n")
+ ));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Received the expected ")
+ ACE_TEXT ("'PUBLICATION_MATCHED_STATUS' ")
+ ACE_TEXT ("in Sender\n")
+ ));
+ }
+ }
+
+ extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_VTopics_Sender_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+ ACE_NEW_NORETURN (
+ retval,
+ Sender_exec_i);
+
+ return retval;
+ }
+}