summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Notify/EventChannel.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/EventChannel.h127
1 files changed, 73 insertions, 54 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h b/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h
index 030da306008..d49929af4fa 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h
@@ -20,14 +20,19 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "orbsvcs/CosNotifyChannelAdminS.h"
-#include "orbsvcs/NotifyExtC.h"
-#include "Container_T.h"
-#include "Destroy_Callback.h"
+#include "Object.h"
-//#include "Admin.h"
-
-class TAO_NS_Admin;
+class TAO_NS_ConsumerAdmin;
+class TAO_NS_SupplierAdmin;
class TAO_NS_EventChannelFactory;
+template <class TYPE> class TAO_NS_Container_T;
+
+#if defined(_MSC_VER)
+#if (_MSC_VER >= 1200)
+#pragma warning(push)
+#endif /* _MSC_VER >= 1200 */
+#pragma warning(disable:4250)
+#endif /* _MSC_VER */
/**
* @class TAO_NS_EventChannel
@@ -35,31 +40,62 @@ class TAO_NS_EventChannelFactory;
* @brief Implementation of CosNotifyChannelAdmin::EventChannel
*
*/
-class TAO_Notify_Export TAO_NS_EventChannel : public POA_CosNotifyChannelAdmin::EventChannel, public TAO_NS_Container_T <TAO_NS_Admin, TAO_NS_EventChannel, TAO_NS_EventChannelFactory>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_EventChannel : public POA_CosNotifyChannelAdmin::EventChannel
+ , public virtual TAO_NS_Object
{
friend class TAO_NS_Builder;
- typedef TAO_NS_Container_T <TAO_NS_Admin, TAO_NS_EventChannel, TAO_NS_EventChannelFactory> inherited;
public:
+ typedef CosNotifyChannelAdmin::ChannelIDSeq SEQ;
+ typedef CosNotifyChannelAdmin::ChannelIDSeq_var SEQ_VAR;
+
/// Constuctor
TAO_NS_EventChannel (void);
/// Destructor
~TAO_NS_EventChannel ();
- /// Return servant
- virtual PortableServer::Servant servant (void);
+ /// Init
+ void init (TAO_NS_EventChannelFactory* ecf
+ , const CosNotification::QoSProperties & initial_qos
+ , const CosNotification::AdminProperties & initial_admin
+ ACE_ENV_ARG_DECL);
+
+ /// Remove ConsumerAdmin from its container.
+ void remove (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_ARG_DECL);
+
+ /// Remove SupplierAdmin from its container.
+ void remove (TAO_NS_SupplierAdmin* supplier_admin ACE_ENV_ARG_DECL);
/// ServantBase refcount methods.
virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL);
virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL);
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
+ /// Shutdown
+ virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL);
+
protected:
+ typedef TAO_NS_Container_T <TAO_NS_ConsumerAdmin> TAO_NS_ConsumerAdmin_Container;
+ typedef TAO_NS_Container_T <TAO_NS_SupplierAdmin> TAO_NS_SupplierAdmin_Container;
+
/// = Data Members
+ /// The parent object.
+ TAO_NS_EventChannelFactory* ecf_;
+
+ /// ConsumerAdmin Container.
+ TAO_NS_ConsumerAdmin_Container *ca_container_;
+
+ /// SupplierAdmin Container.
+ TAO_NS_SupplierAdmin_Container *sa_container_;
+ // Default Consumer Admin
+ CosNotifyChannelAdmin::ConsumerAdmin_var default_consumer_admin_;
+
+ // Default Supplier Admin
+ CosNotifyChannelAdmin::SupplierAdmin_var default_supplier_admin_;
/// =CosNotifyChannelAdmin::EventChannel methods
@@ -68,20 +104,20 @@ protected:
CORBA::SystemException
));
- virtual ::CosNotifyChannelAdmin::EventChannelFactory_ptr MyFactory (
+ virtual ::CosNotifyChannelAdmin::EventChannelFactory_ptr MyFactory (ACE_ENV_SINGLE_ARG_DECL
)
ACE_THROW_SPEC ((
CORBA::SystemException
));
- virtual ::CosNotifyChannelAdmin::ConsumerAdmin_ptr default_consumer_admin (
+ virtual ::CosNotifyChannelAdmin::ConsumerAdmin_ptr default_consumer_admin (ACE_ENV_SINGLE_ARG_DECL
)
ACE_THROW_SPEC ((
CORBA::SystemException
));
- virtual ::CosNotifyChannelAdmin::SupplierAdmin_ptr default_supplier_admin (
+ virtual ::CosNotifyChannelAdmin::SupplierAdmin_ptr default_supplier_admin (ACE_ENV_SINGLE_ARG_DECL
)
ACE_THROW_SPEC ((
@@ -93,107 +129,90 @@ protected:
CORBA::SystemException
));
- virtual ::CosNotifyChannelAdmin::ConsumerAdmin_ptr new_for_consumers (
- CosNotifyChannelAdmin::InterFilterGroupOperator op,
+ virtual ::CosNotifyChannelAdmin::ConsumerAdmin_ptr new_for_consumers (CosNotifyChannelAdmin::InterFilterGroupOperator op,
CosNotifyChannelAdmin::AdminID_out id
- )
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
));
- virtual ::CosNotifyChannelAdmin::SupplierAdmin_ptr new_for_suppliers (
- CosNotifyChannelAdmin::InterFilterGroupOperator op,
+ virtual ::CosNotifyChannelAdmin::SupplierAdmin_ptr new_for_suppliers (CosNotifyChannelAdmin::InterFilterGroupOperator op,
CosNotifyChannelAdmin::AdminID_out id
- ACE_ENV_ARG_DECL
- )
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
));
- virtual ::CosNotifyChannelAdmin::ConsumerAdmin_ptr get_consumeradmin (
- CosNotifyChannelAdmin::AdminID id
- )
+ virtual ::CosNotifyChannelAdmin::ConsumerAdmin_ptr get_consumeradmin (CosNotifyChannelAdmin::AdminID id
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
, CosNotifyChannelAdmin::AdminNotFound
));
- virtual ::CosNotifyChannelAdmin::SupplierAdmin_ptr get_supplieradmin (
- CosNotifyChannelAdmin::AdminID id
- )
+ virtual ::CosNotifyChannelAdmin::SupplierAdmin_ptr get_supplieradmin (CosNotifyChannelAdmin::AdminID id
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
, CosNotifyChannelAdmin::AdminNotFound
));
- virtual ::CosNotifyChannelAdmin::AdminIDSeq * get_all_consumeradmins (
-
- )
+ virtual ::CosNotifyChannelAdmin::AdminIDSeq * get_all_consumeradmins (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
));
- virtual ::CosNotifyChannelAdmin::AdminIDSeq * get_all_supplieradmins (
-
- )
+ virtual ::CosNotifyChannelAdmin::AdminIDSeq * get_all_supplieradmins (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
));
- virtual ::CosNotification::QoSProperties * get_qos (
-
- )
+ virtual ::CosNotification::QoSProperties * get_qos (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
));
- virtual void set_qos (
- const CosNotification::QoSProperties & qos
- )
+ virtual void set_qos (const CosNotification::QoSProperties & qos
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
, CosNotification::UnsupportedQoS
));
- virtual void validate_qos (
- const CosNotification::QoSProperties & required_qos,
+ virtual void validate_qos (const CosNotification::QoSProperties & required_qos,
CosNotification::NamedPropertyRangeSeq_out available_qos
- )
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
, CosNotification::UnsupportedQoS
));
- virtual ::CosNotification::AdminProperties * get_admin (
-
- )
+ virtual ::CosNotification::AdminProperties * get_admin (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
));
- virtual void set_admin (
- const CosNotification::AdminProperties & admin
- )
+ virtual void set_admin (const CosNotification::AdminProperties & admin ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
, CosNotification::UnsupportedAdmin
));
- virtual ::CosEventChannelAdmin::ConsumerAdmin_ptr for_consumers (
-
- )
+ virtual ::CosEventChannelAdmin::ConsumerAdmin_ptr for_consumers (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
));
- virtual ::CosEventChannelAdmin::SupplierAdmin_ptr for_suppliers (
-
- )
+ virtual ::CosEventChannelAdmin::SupplierAdmin_ptr for_suppliers (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
));
};
+#if defined(_MSC_VER) && (_MSC_VER >= 1200)
+#pragma warning(pop)
+#endif /* _MSC_VER */
+
#if defined (__ACE_INLINE__)
#include "EventChannel.inl"
#endif /* __ACE_INLINE__ */