diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/EC_SupplierFiltering.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_SupplierFiltering.h | 42 |
1 files changed, 33 insertions, 9 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierFiltering.h b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierFiltering.h index e9167f64c5d..8d0c6124186 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierFiltering.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierFiltering.h @@ -96,24 +96,48 @@ public: // information can simply ignore the message. virtual void connected (TAO_EC_ProxyPushSupplier* supplier, - CORBA::Environment &env) = 0; + CORBA::Environment &env) = 0; virtual void disconnected (TAO_EC_ProxyPushSupplier* supplier, - CORBA::Environment &env) = 0; + CORBA::Environment &env) = 0; // Concrete implementations can use this methods to keep track of // the consumers interested in this events. - virtual void shutdown (CORBA::Environment &env) = 0; - // The event channel is shutting down. - virtual void push (const RtecEventComm::EventSet& event, CORBA::Environment &) = 0; // The ProxyPushConsumer delegates on this class to actually send // the event. +}; + +// **************************************************************** + +class TAO_EC_Null_SupplierFiltering : public TAO_EC_SupplierFiltering +{ + // = TITLE + // A null filtering strategy. + // + // = DESCRIPTION + // This strategy does no filtering, it is useful for backends of + // the CosEventChannel, testing and broadcasters; it uses the + // ConsumerAdmin to find all the consumers and pushes the event to + // all of them. + // +public: + TAO_EC_Null_SupplierFiltering (TAO_EC_Event_Channel* ec); + // Constructor + + // = The TAO_EC_SupplierFiltering methods. + virtual void bind (TAO_EC_ProxyPushConsumer* consumer); + virtual void unbind (TAO_EC_ProxyPushConsumer* consumer); + virtual void connected (TAO_EC_ProxyPushSupplier* supplier, + CORBA::Environment &env); + virtual void disconnected (TAO_EC_ProxyPushSupplier* supplier, + CORBA::Environment &env); + virtual void push (const RtecEventComm::EventSet& event, + CORBA::Environment &); - virtual CORBA::ULong _incr_refcnt (void) = 0; - virtual CORBA::ULong _decr_refcnt (void) = 0; - // Increment and decrement the reference count, locking must be - // provided by the user. +private: + TAO_EC_Event_Channel *event_channel_; + // The event channel, used to locate the set of consumers. }; #if defined (__ACE_INLINE__) |