summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2009-12-01 09:43:35 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2009-12-01 09:43:35 +0000
commitf4c9d3f8b78b9529e63cb505bc1dabb64c18cb42 (patch)
tree49466c511c5ffc64effc2fe973e40bca2dc410b3
parentff53cad6365a1bfdea8c37d88e1359c283354006 (diff)
downloadATCD-f4c9d3f8b78b9529e63cb505bc1dabb64c18cb42.tar.gz
Tue Dec 01 09:42:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
* connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp * connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h * connectors/dds4ccm/impl/ndds/DataReaderListener.h * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h * connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.cpp * connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.h * connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp * connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.h * connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp * connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.h * connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp * connectors/dds4ccm/impl/ndds/DomainParticipantListener.cpp * connectors/dds4ccm/impl/ndds/DomainParticipantListener.h * connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.cpp * connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.h * connectors/dds4ccm/impl/ndds/PublisherListener_T.cpp * connectors/dds4ccm/impl/ndds/PublisherListener_T.h * connectors/dds4ccm/impl/ndds/SubscriberListener_T.cpp * connectors/dds4ccm/impl/ndds/SubscriberListener_T.h * connectors/dds4ccm/impl/ndds/TopicListener_T.cpp * connectors/dds4ccm/impl/ndds/TopicListener_T.h * connectors/dds4ccm/impl/ndds/Updater_T.cpp * connectors/dds4ccm/impl/ndds/Updater_T.h Implemented empty listeners for each dds entity and first part of DDS_State
-rw-r--r--CIAO/ChangeLog32
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.cpp25
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.h2
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp39
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.h4
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp183
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.h15
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp5
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp5
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h14
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.h1
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp8
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.h7
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.cpp40
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.h44
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.cpp24
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.h39
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/PublisherListener_T.cpp24
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/PublisherListener_T.h39
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener_T.cpp24
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener_T.h39
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/TopicListener_T.cpp13
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/TopicListener_T.h5
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp4
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/Updater_T.h4
25 files changed, 576 insertions, 63 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index df6ee51fda1..9441ad5b177 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,9 +1,37 @@
+Tue Dec 01 09:42:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.h
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h
+ * connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.cpp
+ * connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.h
+ * connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp
+ * connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.h
+ * connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp
+ * connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.h
+ * connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipantListener.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipantListener.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.h
+ * connectors/dds4ccm/impl/ndds/PublisherListener_T.cpp
+ * connectors/dds4ccm/impl/ndds/PublisherListener_T.h
+ * connectors/dds4ccm/impl/ndds/SubscriberListener_T.cpp
+ * connectors/dds4ccm/impl/ndds/SubscriberListener_T.h
+ * connectors/dds4ccm/impl/ndds/TopicListener_T.cpp
+ * connectors/dds4ccm/impl/ndds/TopicListener_T.h
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp
+ * connectors/dds4ccm/impl/ndds/Updater_T.h
+ Implemented empty listeners for each dds entity and first
+ part of DDS_State
+
Tue Dec 01 08:33:37 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl>
* connectors/dds4ccm/tests/CSLDeadline/Receiver/CSL_DeadlineTest_Receiver.mpc
Corrected mpc file for connector_stub
-
Mon Nov 30 13:00:37 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl>
* connectors/dds4ccm/tests/CSLDeadline/Connector/CSL_DeadlineTest_Connector_exec.cpp:
@@ -12,7 +40,7 @@ Mon Nov 30 13:00:37 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl>
* connectors/dds4ccm/tests/CSLQoS/Connector/CSL_QoSTest_Connector_exec.cpp:
* connectors/dds4ccm/tests/CSLQoS/Receiver/CSL_QoSTest_Receiver_exec.cpp:
* connectors/dds4ccm/tests/CSLQoS/Sender/CSL_QoSTest_Sender_exec.cpp:
- Corrected warnings for unused parameters
+ Corrected warnings for unused parameters
Mon Nov 30 13:00:37 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl>
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.cpp
index 7f6f11b8e20..adc1c5fde9e 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.cpp
@@ -116,22 +116,27 @@ DDS_Base_Connector_T<DDS_TYPE, CCM_TYPE>::configure_default_domain (void)
}
if (this->library_name_ && this->profile_name_)
{
- this->domain_participant_factory_->set_default_participant_qos_with_profile (this->library_name_, this->profile_name_);
+ this->domain_participant_factory_->
+ set_default_participant_qos_with_profile (
+ this->library_name_,
+ this->profile_name_);
this->domain_participant_ =
- this->domain_participant_factory_->create_participant_with_profile (this->domain_id_,
- this->library_name_,
- this->profile_name_,
- 0,
- DDS_STATUS_MASK_NONE);
+ this->domain_participant_factory_->create_participant_with_profile (
+ this->domain_id_,
+ this->library_name_,
+ this->profile_name_,
+ 0,
+ DDS_STATUS_MASK_NONE);
}
else
{
::DDS::DomainParticipantQos qos;
this->domain_participant_ =
- this->domain_participant_factory_->create_participant (this->domain_id_,
- qos,
- 0,
- DDS_STATUS_MASK_NONE);
+ this->domain_participant_factory_->create_participant (
+ this->domain_id_,
+ qos,
+ 0,
+ DDS_STATUS_MASK_NONE);
}
}
catch (...)
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.h
index 6928dd24ff1..e4227bda683 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Base_Connector_T.h
@@ -46,6 +46,8 @@ protected:
::DDS::DomainParticipant_var domain_participant_;
typename CCM_TYPE::context_type::_var_type context_;
+
+ ::CCM_DDS::ConnectorStatusListener_var error_listener_;
};
#include "dds4ccm/impl/ndds/DDS_Base_Connector_T.cpp"
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp
index 66bf58a0ce3..011ca5c71ae 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.cpp
@@ -4,9 +4,10 @@
#include "dds4ccm/impl/ndds/DataReaderListener_T.h"
#include "dds4ccm/impl/ndds/DataWriterListener_T.h"
#include "dds4ccm/impl/ndds/Writer_T.h"
-#include "dds4ccm/impl/ndds/Updater_T.h"
#include "dds4ccm/impl/ndds/Getter_T.h"
#include "dds4ccm/impl/ndds/Reader_T.h"
+#include "dds4ccm/impl/ndds/PublisherListener_T.h"
+#include "dds4ccm/impl/ndds/SubscriberListener_T.h"
#include "dds4ccm/impl/ndds/DataListenerControl.h"
#include "ciao/Logger/Log_Macros.h"
@@ -34,27 +35,33 @@ DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::configure_port_dds_write (void)
{
if (CORBA::is_nil (this->supplier_publisher_.in ()))
{
+ this->publisher_listener_ = new ::CIAO::DDS4CCM::RTI::PublisherListener_T
+ <DDS_TYPE, CCM_TYPE> (
+ this->context_->get_connection_error_listener ());
+
if (this->library_name_ && this->profile_name_)
{
this->supplier_publisher_ = this->domain_participant_->
create_publisher_with_profile (
this->library_name_,
this->profile_name_,
- 0,
- 0);
+ this->publisher_listener_.in (),
+ DDS_STATUS_MASK_NONE);
}
else
{
::DDS::PublisherQos pqos;
- this->supplier_publisher_ = this->domain_participant_->create_publisher (pqos,
- 0,
- 0);
+ this->supplier_publisher_ = this->domain_participant_->
+ create_publisher (
+ pqos,
+ this->publisher_listener_.in (),
+ DDS_STATUS_MASK_NONE);
}
}
if (CORBA::is_nil (this->supplier_writer_.in ()))
{
- this->supplier_listener_ = new ::CIAO::DDS4CCM::DataWriterListener_T
+ this->datawriter_listener_ = new ::CIAO::DDS4CCM::DataWriterListener_T
<DDS_TYPE, CCM_TYPE> (
this->context_,
this->listen_datalistener_mode_,
@@ -67,7 +74,7 @@ DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::configure_port_dds_write (void)
this->topic_.in (),
this->library_name_,
this->profile_name_,
- this->supplier_listener_.in (),
+ this->datawriter_listener_.in (),
DDS_OFFERED_DEADLINE_MISSED_STATUS | DDS_OFFERED_INCOMPATIBLE_QOS_STATUS | DDS_LIVELINESS_LOST_STATUS | DDS_PUBLICATION_MATCHED_STATUS);
this->supplier_writer_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp);
}
@@ -78,7 +85,7 @@ DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::configure_port_dds_write (void)
create_datawriter (
this->topic_.in (),
dwqos,
- this->supplier_listener_.in (),
+ this->datawriter_listener_.in (),
DDS_OFFERED_DEADLINE_MISSED_STATUS | DDS_OFFERED_INCOMPATIBLE_QOS_STATUS | DDS_LIVELINESS_LOST_STATUS | DDS_PUBLICATION_MATCHED_STATUS);
this->supplier_writer_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp);
}
@@ -101,22 +108,26 @@ DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::configure_port_dds_listen (void)
{
if (CORBA::is_nil (this->listen_subscriber_.in ()))
{
+ this->subscriber_listener_ = new ::CIAO::DDS4CCM::RTI::SubscriberListener_T
+ <DDS_TYPE, CCM_TYPE> (
+ this->context_->get_connection_error_listener ());
+
if (this->library_name_ && this->profile_name_)
{
this->listen_subscriber_ = this->domain_participant_->
create_subscriber_with_profile (
this->library_name_,
this->profile_name_,
- 0,
- 0);
+ this->subscriber_listener_.in (),
+ DDS_STATUS_MASK_NONE);
}
else
{
::DDS::SubscriberQos sqos;
this->listen_subscriber_ = this->domain_participant_->
create_subscriber (sqos,
- 0,
- 0);
+ this->subscriber_listener_.in (),
+ DDS_STATUS_MASK_NONE);
}
}
@@ -125,6 +136,8 @@ DDS_Event_Connector_T<DDS_TYPE, CCM_TYPE>::configure_port_dds_listen (void)
this->__listen_datareaderlistener = new ::CIAO::DDS4CCM::RTI::DataReaderListener_T
<DDS_TYPE, CCM_TYPE> (
this->context_,
+ this->context_->get_connection_push_consumer_data_listener (),
+ this->context_->get_connection_pull_consumer_status (),
this->listen_datalistener_mode_,
this->listen_datalistener_max_delivered_data_);
}
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.h
index cbf1f7acb80..f6fb93f1b2e 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_Event_Connector_T.h
@@ -63,7 +63,7 @@ private:
void configure_port_dds_write (void);
::DDS::Publisher_var supplier_publisher_;
::DDS::CCM_DataWriter_var supplier_writer_;
- ::DDS::DataWriterListener_var supplier_listener_;
+ ::DDS::DataWriterListener_var datawriter_listener_;
// @from DDS_Listen
void configure_port_dds_listen (void);
@@ -72,6 +72,8 @@ private:
::DDS::Subscriber_var listen_subscriber_;
::DDS::DataReader_var push_consumer_data_;
::DDS::DataReaderListener_var __listen_datareaderlistener;
+ ::DDS::SubscriberListener_var subscriber_listener_;
+ ::DDS::PublisherListener_var publisher_listener_;
// @from DDS_Getter
::DDS::DataReader_var pull_consumer_fresh_data_;
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp
index b833c64b4d4..86cfaca2845 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.cpp
@@ -3,9 +3,7 @@
#include "dds4ccm/impl/ndds/DataReaderListener_T.h"
#include "dds4ccm/impl/ndds/DataWriterListener_T.h"
-#include "dds4ccm/impl/ndds/Writer_T.h"
#include "dds4ccm/impl/ndds/Updater_T.h"
-#include "dds4ccm/impl/ndds/Getter_T.h"
#include "dds4ccm/impl/ndds/Reader_T.h"
#include "dds4ccm/impl/ndds/DataListenerControl.h"
@@ -13,7 +11,9 @@
template <typename DDS_TYPE, typename CCM_TYPE>
DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::DDS_State_Connector_T (void) :
- DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>()
+ DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>(),
+ listen_datalistener_mode_ ( ::CCM_DDS::NOT_ENABLED),
+ listen_datalistener_max_delivered_data_ (0)
{
}
@@ -26,14 +26,15 @@ template <typename DDS_TYPE, typename CCM_TYPE>
typename CCM_TYPE::updater_type::_ptr_type
DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::get_observable_data (void)
{
- return 0;
+ return new CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>
+ (this->observable_data_.in ());
}
template <typename DDS_TYPE, typename CCM_TYPE>
::DDS::CCM_DataWriter_ptr
DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::get_observable_dds_entity (void)
{
- return 0;
+ return this->observable_data_.in ();
}
template <typename DDS_TYPE, typename CCM_TYPE>
@@ -75,21 +76,24 @@ template <typename DDS_TYPE, typename CCM_TYPE>
typename CCM_TYPE::reader_type::_ptr_type
DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::get_push_observer_data (void)
{
- return 0;
+ return new CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> (
+ this->push_consumer_data_.in ());
}
template <typename DDS_TYPE, typename CCM_TYPE>
::CCM_DDS::CCM_DataListenerControl_ptr
DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::get_push_observer_data_control (void)
{
- return 0;
+ return new CCM_DDS_DataListenerControl_i (
+ this->listen_datalistener_mode_,
+ this->listen_datalistener_max_delivered_data_);
}
template <typename DDS_TYPE, typename CCM_TYPE>
::DDS::CCM_DataReader_ptr
DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::get_push_observer_dds_entity (void)
{
- return 0;
+ return ::DDS::CCM_DataReader::_nil ();
}
template <typename DDS_TYPE, typename CCM_TYPE>
@@ -140,3 +144,166 @@ DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_remove (void)
{
DDS_Base_Connector_T<DDS_TYPE, CCM_TYPE>::ccm_remove ();
}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::configure_port_dds_update (void)
+{
+ this->configure_default_topic ();
+
+ try
+ {
+ if (CORBA::is_nil (this->supplier_publisher_.in ()))
+ {
+ if (this->library_name_ && this->profile_name_)
+ {
+ this->supplier_publisher_ = this->domain_participant_->
+ create_publisher_with_profile (
+ this->library_name_,
+ this->profile_name_,
+ 0,
+ 0);
+ }
+ else
+ {
+ ::DDS::PublisherQos pqos;
+ this->supplier_publisher_ = this->domain_participant_->create_publisher (pqos,
+ 0,
+ 0);
+ }
+ }
+
+ if (CORBA::is_nil (this->observable_data_.in ()))
+ {
+ this->supplier_listener_ = new ::CIAO::DDS4CCM::DataWriterListener_T
+ <DDS_TYPE, CCM_TYPE> (
+ this->context_,
+ this->listen_datalistener_mode_,
+ this->listen_datalistener_max_delivered_data_);
+
+ if (this->library_name_ && this->profile_name_)
+ {
+ ::DDS::DataWriter_var dwv_tmp = this->supplier_publisher_->
+ create_datawriter_with_profile (
+ this->topic_.in (),
+ this->library_name_,
+ this->profile_name_,
+ this->supplier_listener_.in (),
+ DDS_OFFERED_DEADLINE_MISSED_STATUS | DDS_OFFERED_INCOMPATIBLE_QOS_STATUS | DDS_LIVELINESS_LOST_STATUS | DDS_PUBLICATION_MATCHED_STATUS);
+ this->observable_data_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp);
+ }
+ else
+ {
+ ::DDS::DataWriterQos dwqos;
+ ::DDS::DataWriter_var dwv_tmp = this->supplier_publisher_->
+ create_datawriter (
+ this->topic_.in (),
+ dwqos,
+ this->supplier_listener_.in (),
+ DDS_OFFERED_DEADLINE_MISSED_STATUS | DDS_OFFERED_INCOMPATIBLE_QOS_STATUS | DDS_LIVELINESS_LOST_STATUS | DDS_PUBLICATION_MATCHED_STATUS);
+ this->observable_data_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp);
+ }
+ }
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, "Caught unknown C++ exception while configuring port info_in_\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+DDS_State_Connector_T<DDS_TYPE, CCM_TYPE>::configure_port_dds_listen (void)
+{
+ this->configure_default_topic ();
+
+ try
+ {
+ if (CORBA::is_nil (this->listen_subscriber_.in ()))
+ {
+ if (this->library_name_ && this->profile_name_)
+ {
+ this->listen_subscriber_ = this->domain_participant_->
+ create_subscriber_with_profile (
+ this->library_name_,
+ this->profile_name_,
+ 0,
+ 0);
+ }
+ else
+ {
+ ::DDS::SubscriberQos sqos;
+ this->listen_subscriber_ = this->domain_participant_->
+ create_subscriber (sqos,
+ 0,
+ 0);
+ }
+ }
+
+ if (CORBA::is_nil (this->__listen_datareaderlistener.in ()))
+ {
+ this->__listen_datareaderlistener = new ::CIAO::DDS4CCM::RTI::DataReaderListener_T
+ <DDS_TYPE, CCM_TYPE> (
+ this->context_,
+ this->context_->get_connection_push_observer_data_listener (),
+ this->context_->get_connection_pull_observer_status (),
+ this->listen_datalistener_mode_,
+ this->listen_datalistener_max_delivered_data_);
+ }
+
+ if (CORBA::is_nil (this->push_consumer_data_.in ()))
+ {
+ if (this->library_name_ && this->profile_name_)
+ {
+ this->push_consumer_data_ =
+ this->listen_subscriber_->create_datareader_with_profile (
+ this->topic_.in (),
+ this->library_name_,
+ this->profile_name_,
+ this->__listen_datareaderlistener.in (),
+ DDS_DATA_AVAILABLE_STATUS | DDS_REQUESTED_DEADLINE_MISSED_STATUS | DDS_SAMPLE_LOST_STATUS | DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS);
+ }
+ else
+ {
+ ::DDS::DataReaderQos drqos;
+ this->push_consumer_data_ =
+ this->listen_subscriber_->create_datareader (
+ this->topic_.in (),
+ drqos,
+ this->__listen_datareaderlistener.in (),
+ DDS_DATA_AVAILABLE_STATUS | DDS_REQUESTED_DEADLINE_MISSED_STATUS | DDS_SAMPLE_LOST_STATUS | DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS);
+ }
+ }
+
+ if (CORBA::is_nil (this->pull_consumer_fresh_data_.in ()))
+ {
+ if (this->profile_name_ && this->library_name_)
+ {
+ this->pull_consumer_fresh_data_ =
+ this->listen_subscriber_->create_datareader_with_profile (
+ this->topic_.in (),
+ this->library_name_,
+ this->profile_name_,
+ this->__listen_datareaderlistener.in (),
+ DDS_DATA_AVAILABLE_STATUS | DDS_REQUESTED_DEADLINE_MISSED_STATUS | DDS_SAMPLE_LOST_STATUS | DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS);
+ }
+ else
+ {
+ ::DDS::DataReaderQos drqos;
+ this->pull_consumer_fresh_data_ =
+ this->listen_subscriber_->create_datareader (
+ this->topic_.in (),
+ drqos,
+ this->__listen_datareaderlistener.in (),
+ DDS_DATA_AVAILABLE_STATUS | DDS_REQUESTED_DEADLINE_MISSED_STATUS | DDS_SAMPLE_LOST_STATUS | DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS);
+ }
+
+ }
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_EMERGENCY, "Caught unknown c++ exception while creating subscriber entities\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.h
index 5515ecf9e5c..639dfe9fb7f 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_State_Connector_T.h
@@ -64,6 +64,21 @@ public:
virtual void ccm_remove (void);
private:
+ void configure_port_dds_update (void);
+ ::DDS::Publisher_var supplier_publisher_;
+ ::DDS::CCM_DataWriter_var observable_data_;
+ ::DDS::DataWriterListener_var supplier_listener_;
+
+ // @from DDS_Listen
+ void configure_port_dds_listen (void);
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, ::CCM_DDS::ListenerMode> listen_datalistener_mode_;
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, ::CCM_DDS::DataNumber_t> listen_datalistener_max_delivered_data_;
+ ::DDS::Subscriber_var listen_subscriber_;
+ ::DDS::DataReader_var push_consumer_data_;
+ ::DDS::DataReaderListener_var __listen_datareaderlistener;
+
+ // @from DDS_Getter
+ ::DDS::DataReader_var pull_consumer_fresh_data_;
};
#include "dds4ccm/impl/ndds/DDS_State_Connector_T.cpp"
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp
index fc49d85fcdb..7ee5f441b2d 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DDS_TopicBase_Connector_T.cpp
@@ -103,14 +103,15 @@ DDS_TopicBase_Connector_T<DDS_TYPE, CCM_TYPE>::configure_default_topic (void)
try
{
CIAO::DDS4CCM::RTI::RTI_DomainParticipant_i *part =
- dynamic_cast< CIAO::DDS4CCM::RTI::RTI_DomainParticipant_i * > (this->domain_participant_.in ());
+ dynamic_cast< CIAO::DDS4CCM::RTI::RTI_DomainParticipant_i * > (
+ this->domain_participant_.in ());
DDS_ReturnCode_t const retcode = DDS_TYPE::type_support::register_type(
part->get_participant (), DDS_TYPE::type_support::get_type_name ());
if (retcode == DDS_RETCODE_OK)
{
this->topiclistener_ = new ::CIAO::DDS4CCM::TopicListener_T
<DDS_TYPE, CCM_TYPE> (
- this->context_);
+ this->context_->get_connection_error_listener ());
if (this->library_name_ && this->profile_name_)
{
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp
index 4113439e30d..ac65898a3ae 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp
@@ -8,12 +8,11 @@
template <typename DDS_TYPE, typename CCM_TYPE>
CIAO::DDS4CCM::RTI::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>::DataReaderHandler_T (
- typename CCM_TYPE::context_type::_ptr_type context,
+ typename CCM_TYPE::listener_type::_ptr_type listener,
typename DDS_TYPE::data_reader * reader)
- : context_ (CCM_TYPE::context_type::_duplicate (context)),
+ : listener_ (CCM_TYPE::listener_type::_duplicate (listener)),
reader_ (reader)
{
- listener_ = CCM_TYPE::listener_type::_duplicate (this->context_->get_connection_push_consumer_data_listener ());
}
template <typename DDS_TYPE, typename CCM_TYPE>
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h
index 03eeab3a2c5..d4cfb988e54 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h
@@ -4,10 +4,13 @@
*
* $Id$
*
- * Eventhandler on orb thread, handling the
+ * Eventhandler on orb thread, handling the
* received data from DDS.
*/
+#ifndef CIAO_RTI_DATAREADERHANDLER_T_H
+#define CIAO_RTI_DATAREADERHANDLER_T_H
+
#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
#include "ace/Reactor.h"
@@ -18,18 +21,17 @@ namespace CIAO
namespace RTI
{
template <typename DDS_TYPE, typename CCM_TYPE>
- class DataReaderHandler_T :
+ class DataReaderHandler_T :
public ACE_Event_Handler
{
public:
DataReaderHandler_T (
- typename CCM_TYPE::context_type::_ptr_type context,
+ typename CCM_TYPE::listener_type::_ptr_type listener,
typename DDS_TYPE::data_reader * reader);
- ~DataReaderHandler_T ();
+ virtual ~DataReaderHandler_T ();
virtual int handle_exception (ACE_HANDLE fc = ACE_INVALID_HANDLE);
private:
- typename CCM_TYPE::context_type::_var_type context_;
typename DDS_TYPE::data_reader * reader_;
typename CCM_TYPE::listener_type::_var_type listener_;
};
@@ -38,3 +40,5 @@ namespace CIAO
}
#include "dds4ccm/impl/ndds/DataReaderHandler_T.cpp"
+
+#endif
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.h b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.h
index adf47e57b4e..373cd469f7a 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.h
@@ -1,5 +1,4 @@
/**
- * @author William R. Otte <wotte@dre.vanderbilt.edu>
* @author Johnny Willemsen <jwillemsen@remedy.nl>
*
* $Id$
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp
index 31f55247eb5..177a8c0347d 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp
@@ -10,14 +10,18 @@
template <typename DDS_TYPE, typename CCM_TYPE>
CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::DataReaderListener_T (
typename CCM_TYPE::context_type::_ptr_type context,
+ typename CCM_TYPE::listener_type::_ptr_type listener,
+ ::CCM_DDS::PortStatusListener_ptr port_status_listener,
ACE_Atomic_Op <TAO_SYNCH_MUTEX, ::CCM_DDS::ListenerMode> &mode,
ACE_Atomic_Op <TAO_SYNCH_MUTEX, ::CCM_DDS::DataNumber_t> &max_delivered_data)
: context_ (CCM_TYPE::context_type::_duplicate (context)),
+ listener_ (CCM_TYPE::listener_type::_duplicate (listener)),
mode_ (mode),
max_delivered_data_ (max_delivered_data)
{
CIAO_TRACE ("CIAO::DDS4CCM::RTI::DataReaderListener_T::DataReaderListener_T");
- this->info_out_portstatus_ = this->context_->get_connection_pull_consumer_status ();
+ this->info_out_portstatus_ =
+ ::CCM_DDS::PortStatusListener::_duplicate (port_status_listener);
this->info_out_connector_status_ = this->context_->get_connection_error_listener ();
}
@@ -56,7 +60,7 @@ CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::on_data_available(
return;
}
::CIAO::DDS4CCM::RTI::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>* rh =
- new ::CIAO::DDS4CCM::RTI::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>(this->context_, reader);
+ new ::CIAO::DDS4CCM::RTI::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>(this->listener_.in (), reader);
this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->notify (rh);
}
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.h
index 50ea2bccbde..05b3f81529b 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.h
@@ -25,6 +25,8 @@ namespace CIAO
/// Constructor
DataReaderListener_T (
typename CCM_TYPE::context_type::_ptr_type context,
+ typename CCM_TYPE::listener_type::_ptr_type listener,
+ CCM_DDS::PortStatusListener_ptr port_status_listener,
ACE_Atomic_Op <TAO_SYNCH_MUTEX, ::CCM_DDS::ListenerMode> &mode,
ACE_Atomic_Op <TAO_SYNCH_MUTEX, ::CCM_DDS::DataNumber_t> &max_delivered_data);
@@ -45,8 +47,9 @@ namespace CIAO
private:
typename CCM_TYPE::context_type::_var_type context_;
- CCM_DDS::ConnectorStatusListener_var info_out_connector_status_;
- CCM_DDS::PortStatusListener_var info_out_portstatus_;
+ ::CCM_DDS::ConnectorStatusListener_var info_out_connector_status_;
+ ::CCM_DDS::PortStatusListener_var info_out_portstatus_;
+ typename CCM_TYPE::listener_type::_var_type listener_;
ACE_Atomic_Op <TAO_SYNCH_MUTEX, ::CCM_DDS::ListenerMode> &mode_;
ACE_Atomic_Op <TAO_SYNCH_MUTEX, ::CCM_DDS::DataNumber_t> &max_delivered_data_;
};
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.cpp
new file mode 100644
index 00000000000..37a4c33fc7d
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.cpp
@@ -0,0 +1,40 @@
+// $Id$
+
+#include "DomainParticipantListener.h"
+#include "DomainParticipant.h"
+#include "SampleLostStatus.h"
+#include "SubscriptionMatchedStatus.h"
+#include "RequestedDeadlineMissedStatus.h"
+#include "SampleRejectedStatus.h"
+#include "LivelinessChangedStatus.h"
+#include "RequestedIncompatibleQosStatus.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ RTI_DomainParticipantListener_i::RTI_DomainParticipantListener_i (
+ ::DDS::DomainParticipantListener_ptr p)
+ : impl_ (::DDS::DomainParticipantListener::_duplicate (p))
+ {
+ }
+
+ RTI_DomainParticipantListener_i::~RTI_DomainParticipantListener_i (void)
+ {
+ }
+
+ ::DDS::DomainParticipantListener_ptr
+ RTI_DomainParticipantListener_i::get_domainparticipantlistener (void)
+ {
+ return ::DDS::DomainParticipantListener::_duplicate (this->impl_.in ());
+ }
+ }
+ }
+}
+
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.h b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.h
new file mode 100644
index 00000000000..844390b322d
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener.h
@@ -0,0 +1,44 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_DOMAINPARTICIPANTLISTENER_H
+#define CIAO_RTI_DOMAINPARTICIPANTLISTENER_H
+
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_DomainParticipantListener_i :
+ public virtual ::DDSDomainParticipantListener
+ {
+ public:
+ // Constructor
+ RTI_DomainParticipantListener_i (::DDS::DomainParticipantListener_ptr p);
+
+ // Destructor
+ virtual ~RTI_DomainParticipantListener_i (void);
+
+ ::DDS::DomainParticipantListener_ptr get_datareaderlistener (void);
+ private:
+ ::DDS::DomainParticipantListener_var impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.cpp
new file mode 100644
index 00000000000..57dc2ad4697
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.cpp
@@ -0,0 +1,24 @@
+// $Id$
+#include "dds4ccm/impl/ndds/Utils.h"
+
+#include "dds4ccm/impl/ndds/DataReader.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "dds4ccm/impl/ndds/DataReaderHandler_T.h"
+#include "tao/ORB_Core.h"
+
+// Implementation skeleton constructor
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::RTI::DomainParticipantListener_T<DDS_TYPE, CCM_TYPE>::DomainParticipantListener_T (
+ ::CCM_DDS::ConnectorStatusListener_ptr error_listener)
+ : error_listener_ (::CCM_DDS::ConnectorStatusListener::_duplicate (error_listener))
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::DomainParticipantListener_T::DomainParticipantListener_T");
+}
+
+// Implementation skeleton destructor
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::RTI::DomainParticipantListener_T<DDS_TYPE, CCM_TYPE>::~DomainParticipantListener_T (void)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::DomainParticipantListener_T::~DomainParticipantListener_T");
+}
+
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.h b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.h
new file mode 100644
index 00000000000..e9c3a0bc03f
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantListener_T.h
@@ -0,0 +1,39 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ template <typename DDS_TYPE, typename CCM_TYPE>
+ class DomainParticipantListener_T :
+ public ::DDS::DomainParticipantListener,
+ private ACE_Copy_Disabled
+ {
+ public:
+ /// Constructor
+ DomainParticipantListener_T (
+ ::CCM_DDS::ConnectorStatusListener_ptr error_listener);
+
+ /// Destructor
+ virtual ~DomainParticipantListener_T (void);
+
+ private:
+ ::CCM_DDS::ConnectorStatusListener_var error_listener_;
+ };
+ }
+ }
+}
+
+#include "dds4ccm/impl/ndds/DomainParticipantListener_T.cpp"
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener_T.cpp
new file mode 100644
index 00000000000..5b80a0613ee
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener_T.cpp
@@ -0,0 +1,24 @@
+// $Id$
+#include "dds4ccm/impl/ndds/Utils.h"
+
+#include "dds4ccm/impl/ndds/DataReader.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "dds4ccm/impl/ndds/DataReaderHandler_T.h"
+#include "tao/ORB_Core.h"
+
+// Implementation skeleton constructor
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::RTI::PublisherListener_T<DDS_TYPE, CCM_TYPE>::PublisherListener_T (
+ ::CCM_DDS::ConnectorStatusListener_ptr error_listener)
+ : error_listener_ (::CCM_DDS::ConnectorStatusListener::_duplicate (error_listener))
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::PublisherListener_T::PublisherListener_T");
+}
+
+// Implementation skeleton destructor
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::RTI::PublisherListener_T<DDS_TYPE, CCM_TYPE>::~PublisherListener_T (void)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::PublisherListener_T::~PublisherListener_T");
+}
+
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener_T.h b/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener_T.h
new file mode 100644
index 00000000000..8e8e4bc9ab7
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener_T.h
@@ -0,0 +1,39 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ template <typename DDS_TYPE, typename CCM_TYPE>
+ class PublisherListener_T :
+ public ::DDS::PublisherListener,
+ private ACE_Copy_Disabled
+ {
+ public:
+ /// Constructor
+ PublisherListener_T (
+ ::CCM_DDS::ConnectorStatusListener_ptr error_listener);
+
+ /// Destructor
+ virtual ~PublisherListener_T (void);
+
+ private:
+ ::CCM_DDS::ConnectorStatusListener_var error_listener_;
+ };
+ }
+ }
+}
+
+#include "dds4ccm/impl/ndds/PublisherListener_T.cpp"
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener_T.cpp
new file mode 100644
index 00000000000..2113e63cd3e
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener_T.cpp
@@ -0,0 +1,24 @@
+// $Id$
+#include "dds4ccm/impl/ndds/Utils.h"
+
+#include "dds4ccm/impl/ndds/DataReader.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "dds4ccm/impl/ndds/DataReaderHandler_T.h"
+#include "tao/ORB_Core.h"
+
+// Implementation skeleton constructor
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::RTI::SubscriberListener_T<DDS_TYPE, CCM_TYPE>::SubscriberListener_T (
+ ::CCM_DDS::ConnectorStatusListener_ptr error_listener)
+ : error_listener_ (::CCM_DDS::ConnectorStatusListener::_duplicate (error_listener))
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::SubscriberListener_T::SubscriberListener_T");
+}
+
+// Implementation skeleton destructor
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::RTI::SubscriberListener_T<DDS_TYPE, CCM_TYPE>::~SubscriberListener_T (void)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::SubscriberListener_T::~SubscriberListener_T");
+}
+
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener_T.h b/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener_T.h
new file mode 100644
index 00000000000..96c02bf79a3
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener_T.h
@@ -0,0 +1,39 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ template <typename DDS_TYPE, typename CCM_TYPE>
+ class SubscriberListener_T :
+ public ::DDS::SubscriberListener,
+ private ACE_Copy_Disabled
+ {
+ public:
+ /// Constructor
+ SubscriberListener_T (
+ ::CCM_DDS::ConnectorStatusListener_ptr error_listener);
+
+ /// Destructor
+ virtual ~SubscriberListener_T (void);
+
+ private:
+ ::CCM_DDS::ConnectorStatusListener_var error_listener_;
+ };
+ }
+ }
+}
+
+#include "dds4ccm/impl/ndds/SubscriberListener_T.cpp"
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/TopicListener_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/TopicListener_T.cpp
index e6b4fe24803..8e84768bffd 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/TopicListener_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/TopicListener_T.cpp
@@ -6,9 +6,8 @@
template <typename DDS_TYPE, typename CCM_TYPE>
CIAO::DDS4CCM::TopicListener_T<DDS_TYPE, CCM_TYPE>::TopicListener_T (
- typename CCM_TYPE::context_type::_ptr_type context)
- : context_ (CCM_TYPE::context_type::_duplicate (context)),
- info_out_connector_status_ (CCM_DDS::ConnectorStatusListener::_duplicate (context->get_connection_error_listener ()))
+ ::CCM_DDS::ConnectorStatusListener_ptr error_listener) :
+ error_listener_ (::CCM_DDS::ConnectorStatusListener::_duplicate (error_listener))
{
CIAO_TRACE ("CIAO::DDS4CCM::TopicListener_T::TopicListener_T");
}
@@ -22,12 +21,12 @@ CIAO::DDS4CCM::TopicListener_T<DDS_TYPE, CCM_TYPE>::~TopicListener_T (void)
template <typename DDS_TYPE, typename CCM_TYPE>
void
CIAO::DDS4CCM::TopicListener_T<DDS_TYPE, CCM_TYPE>::on_inconsistent_topic (
- ::DDS::Topic_ptr the_topic,
- const ::DDS::InconsistentTopicStatus & status)
+ ::DDS::Topic_ptr the_topic,
+ const ::DDS::InconsistentTopicStatus & status)
{
- if (!CORBA::is_nil (this->info_out_connector_status_))
+ if (!CORBA::is_nil (this->error_listener_.in ()))
{
- this->info_out_connector_status_->on_inconsistent_topic (the_topic, status);
+ this->error_listener_->on_inconsistent_topic (the_topic, status);
}
}
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/TopicListener_T.h b/CIAO/connectors/dds4ccm/impl/ndds/TopicListener_T.h
index ba9ecbd54e2..88b83b3fd0f 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/TopicListener_T.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/TopicListener_T.h
@@ -20,7 +20,7 @@ namespace CIAO
{
public:
/// Constructor
- TopicListener_T (typename CCM_TYPE::context_type::_ptr_type context);
+ TopicListener_T (::CCM_DDS::ConnectorStatusListener_ptr error_listener);
/// Destructor
virtual ~TopicListener_T (void);
@@ -30,8 +30,7 @@ namespace CIAO
const ::DDS::InconsistentTopicStatus & status);
private:
- typename CCM_TYPE::context_type::_var_type context_;
- CCM_DDS::ConnectorStatusListener_var info_out_connector_status_;
+ CCM_DDS::ConnectorStatusListener_var error_listener_;
};
}
}
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp
index d21ebeeede3..daea040ca27 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp
@@ -22,7 +22,7 @@ CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::~Updater_T (void)
template <typename DDS_TYPE, typename CCM_TYPE>
bool
-CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::is_global_scope () const
+CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::is_global_scope ()
{
CIAO_TRACE ("CIAO::DDS4CCM::RTI::Updater_T::is_global_scope");
return this->is_global_scope_;
@@ -30,7 +30,7 @@ CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::is_global_scope () const
template <typename DDS_TYPE, typename CCM_TYPE>
bool
-CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::is_coherent_write () const
+CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::is_coherent_write ()
{
CIAO_TRACE ("CIAO::DDS4CCM::RTI::Updater_T::is_coherent_write");
return this->is_coherent_write_;
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.h b/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.h
index 2a793996251..e65f4a37937 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.h
+++ b/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.h
@@ -47,9 +47,9 @@ namespace CIAO
virtual void delete_many (
const typename CCM_TYPE::seq_type& data);
- virtual bool is_global_scope () const;
+ virtual bool is_global_scope ();
- virtual bool is_coherent_write () const;
+ virtual bool is_coherent_write ();
virtual void is_coherent_write (bool value_);