diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Notify/Notify_Dispatcher.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Notify/Notify_Dispatcher.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Dispatcher.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Dispatcher.h index 379095b3928..7165ea95d00 100644 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Dispatcher.h +++ b/TAO/orbsvcs/orbsvcs/Notify/Notify_Dispatcher.h @@ -21,6 +21,9 @@ #include "ace/Containers.h" #include "tao/corbafwd.h" +#include "orbsvcs/orbsvcs/CosNotifyCommC.h" + +class TAO_Notify_FilterAdmin_i; class TAO_Notify_Dispatcher { @@ -33,12 +36,25 @@ class TAO_Notify_Dispatcher // contained Dispatchers. public: + // = Initialization and termination + TAO_Notify_Dispatcher (void); + // Constructor + + ~TAO_Notify_Dispatcher (void); + // Destructor + static TAO_Notify_Dispatcher* create (CORBA::Environment &ACE_TRY_ENV); // Factory method to create dispatchers of various types. + void set_FilterAdmin (TAO_Notify_FilterAdmin_i* filter_admin); + // Set the filter admin for this dispatcher. + + // = Clients of this class should call these methods to dispatch events. virtual void dispatch_event (const CORBA::Any & data, CORBA::Environment &ACE_TRY_ENV) = 0; - // Clients of this class should call this method to dispatch events. + + virtual void dispatch_event (const CosNotification::StructuredEvent& event, + CORBA::Environment &ACE_TRY_ENV) = 0; int add_dispatcher (TAO_Notify_Dispatcher& dispatcher); // Add a dispatcher to an internal list of event recipients. @@ -47,6 +63,8 @@ class TAO_Notify_Dispatcher //Remove a dispatcher from the internal list. protected: + TAO_Notify_FilterAdmin_i* filter_admin_; + typedef ACE_Unbounded_Set<TAO_Notify_Dispatcher*> DISPATCHER_SET; typedef ACE_Unbounded_Set_Iterator<TAO_Notify_Dispatcher*> DISPATCHER_SET_ITER; @@ -64,6 +82,9 @@ class Notify_Reactive_Dispatcher : public TAO_Notify_Dispatcher // virtual void dispatch_event (const CORBA::Any & data, CORBA::Environment &ACE_TRY_ENV); + + virtual void dispatch_event (const CosNotification::StructuredEvent& event, + CORBA::Environment &ACE_TRY_ENV); }; #endif /* NOTIFY_DISPATCHER_H_ */ |