summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.h
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.h')
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.h
new file mode 100644
index 00000000000..1975e34fb00
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.h
@@ -0,0 +1,128 @@
+/**
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+#ifndef CONNECTOR_T_H_
+#define CONNECTOR_T_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+class Connector_T
+ : public virtual CCM_TYPE::base_type,
+ public virtual ::CORBA::LocalObject,
+ private virtual ACE_Copy_Disabled
+{
+public:
+ Connector_T (const char * topic_name);
+ virtual ~Connector_T (void);
+
+ virtual char *topic_name (void);
+
+ virtual void topic_name (const char * topic_name);
+
+ virtual ::DDS::StringSeq *key_fields (void);
+
+ virtual ::DDS::DomainId_t domain_id (void);
+
+ virtual void domain_id (::DDS::DomainId_t domain_id);
+
+ virtual char *qos_profile (void);
+
+ virtual void qos_profile (const char * qos_profile);
+
+ virtual typename CCM_TYPE::writer_type::_ptr_type get_info_in_data (void);
+
+ virtual ::DDS::CCM_DataWriter_ptr get_info_in_dds_entity (void);
+
+ virtual typename CCM_TYPE::updater_type::_ptr_type get_info_update_data (void);
+
+ virtual typename CCM_TYPE::getter_type::_ptr_type get_info_out_get_data (void);
+
+ virtual typename CCM_TYPE::reader_type::_ptr_type get_info_out_data (void);
+
+ virtual ::CCM_DDS::CCM_ListenerControl_ptr get_info_out_data_control (void);
+
+ virtual ::DDS::CCM_DataReader_ptr get_info_out_dds_entity (void);
+
+ virtual void set_session_context (::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate (void);
+ virtual void ccm_passivate (void);
+ virtual void ccm_remove (void);
+
+private:
+ typename CCM_TYPE::context_type::_var_type context_;
+
+ // Default stuff
+ void configure_default_domain_ (void);
+ bool default_domain_configured_;
+ ::DDS::DomainParticipantFactory_var domain_factory_;
+ ::DDS::DomainParticipant_var domain_;
+
+ // @from DDS_Base
+ DDS::DomainId_t domain_id_;
+ CORBA::String_var qos_profile_;
+
+ // @from DDS_TopicBase
+ void configure_default_topic_ (void);
+ bool default_topic_configured_;
+ ::DDS::Topic_var topic_;
+ CORBA::String_var topic_name_;
+ DDS::StringSeq key_fields_;
+
+ // @from DDS_Write for
+ void configure_port_info_in_ (void);
+ bool __info_in_configured_;
+ ::DDS::Publisher_var __info_in_publisher_;
+ ::DDS::CCM_DataWriter_var __info_in_datawriter_;
+ typename CCM_TYPE::writer_type::_var_type __info_in_writer_;
+
+ // @from DDS_RawListen
+ void configure_port_info_out_ (bool create_getter);
+ bool __info_out_configured_;
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> __info_out_rawlistener_enabled_;
+ ::DDS::Subscriber_var __info_out_subscriber_;
+ ::DDS::DataReader_var __info_out_datareader_;
+ ::DDS::DataReaderListener_var __info_out_datareaderlistener;
+ ::DDS::DataWriterListener_var __info_out_datawriterlistener;
+
+ // @from DDS_Getter
+ bool __info_get_configured_;
+ ::DDS::DataReader_var __info_get_datareader_;
+};
+
+ template <typename BASE_TYPE,
+ typename SEQ_TYPE,
+ typename WRITER_TYPE,
+ typename UPDATER_TYPE,
+ typename GETTER_TYPE,
+ typename READER_TYPE,
+ typename CONTEXT_TYPE,
+ typename RAWLISTENER_TYPE,
+ typename CONNECTORSTATUSLISTENER_TYPE
+ >
+
+ struct Connector_Traits
+ {
+ typedef BASE_TYPE base_type;
+ typedef SEQ_TYPE seq_type;
+ typedef WRITER_TYPE writer_type;
+ typedef UPDATER_TYPE updater_type;
+ typedef GETTER_TYPE getter_type;
+ typedef READER_TYPE reader_type;
+ typedef CONTEXT_TYPE context_type;
+ typedef RAWLISTENER_TYPE rawlistener_type;
+ typedef CONNECTORSTATUSLISTENER_TYPE connectorstatuslistener_type;
+ };
+
+
+#include "dds4ccm/impl/ndds/Connector_T.cpp"
+
+#endif /* CONNECTOR_T_H_ */