Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TAO_EC_Per_Supplier_Filter Class Reference

Filter the events on each supplier. More...

#include <EC_Per_Supplier_Filter.h>

Inheritance diagram for TAO_EC_Per_Supplier_Filter

Inheritance graph
[legend]
Collaboration diagram for TAO_EC_Per_Supplier_Filter:

Collaboration graph
[legend]
List of all members.

Public Methods

 TAO_EC_Per_Supplier_Filter (TAO_EC_Event_Channel* ec)
 Constructor.

virtual ~TAO_EC_Per_Supplier_Filter (void)
 Destructor.

virtual void bind (TAO_EC_ProxyPushConsumer* consumer)
virtual void unbind (TAO_EC_ProxyPushConsumer* consumer)
virtual void connected (TAO_EC_ProxyPushSupplier* supplier, CORBA::Environment &env)
 Concrete implementations can use this methods to keep track of the consumers interested in this events.

virtual void reconnected (TAO_EC_ProxyPushSupplier* supplier, CORBA::Environment &env)
virtual void disconnected (TAO_EC_ProxyPushSupplier* supplier, CORBA::Environment &env)
virtual void shutdown (CORBA::Environment &env)
 The event channel is shutting down.

virtual void push (const RtecEventComm::EventSet& event, CORBA::Environment &)
 The ProxyPushConsumer delegates on this class to actually send the event.

virtual CORBA::ULong _decr_refcnt (void)
virtual CORBA::ULong _incr_refcnt (void)
 Increment and decrement the reference count, locking must be provided by the user.


Private Attributes

TAO_EC_Event_Channelevent_channel_
 The event channel, used to locate the set of consumers.

TAO_EC_ProxyPushConsumerconsumer_
 The proxy for the supplier we are bound to.

TAO_ESF_Proxy_Collection<TAO_EC_ProxyPushSupplier>* collection_
 Keep the collection of proxies for the consumers that may be interested in our events.

CORBA::ULong refcnt_
 Reference counting.

TAO_SYNCH_MUTEX lock_
 Locking.


Detailed Description

Filter the events on each supplier.

This is a filtering strategy for the suppliers. In this particular case we keep a collection of the consumers that could potentially be interested in any event generated by a particular supplier. This minimizes the amount of consumers touched by the EC when dispatching an event.


Constructor & Destructor Documentation

TAO_EC_Per_Supplier_Filter::TAO_EC_Per_Supplier_Filter ( TAO_EC_Event_Channel * ec ) [inline]
 

Constructor.

TAO_EC_Per_Supplier_Filter::~TAO_EC_Per_Supplier_Filter ( void ) [virtual]
 

Destructor.


Member Function Documentation

CORBA::ULong TAO_EC_Per_Supplier_Filter::_decr_refcnt ( void ) [virtual]
 

Reimplemented from TAO_EC_Supplier_Filter.

CORBA::ULong TAO_EC_Per_Supplier_Filter::_incr_refcnt ( void ) [virtual]
 

Increment and decrement the reference count, locking must be provided by the user.

Reimplemented from TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::bind ( TAO_EC_ProxyPushConsumer * consumer ) [virtual]
 

Whenever a ProxyPushConsumer is initialized it calls this method to inform the Supplier_Filter of its identity. Strategies that do not keep ProxyPushConsumer specific information, or that are shared between multiple ProxyPushConsumers can ignore this message.

Reimplemented from TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::connected ( TAO_EC_ProxyPushSupplier * supplier,
CORBA::Environment & ACE_TRY_ENV ) [virtual]
 

Concrete implementations can use this methods to keep track of the consumers interested in this events.

Reimplemented from TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::disconnected ( TAO_EC_ProxyPushSupplier * supplier,
CORBA::Environment & ACE_TRY_ENV ) [virtual]
 

Reimplemented from TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::push ( const RtecEventComm::EventSet & event,
CORBA::Environment & ACE_TRY_ENV ) [virtual]
 

The ProxyPushConsumer delegates on this class to actually send the event.

Reimplemented from TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::reconnected ( TAO_EC_ProxyPushSupplier * supplier,
CORBA::Environment & ACE_TRY_ENV ) [virtual]
 

Reimplemented from TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::shutdown ( CORBA::Environment & ACE_TRY_ENV ) [virtual]
 

The event channel is shutting down.

Reimplemented from TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::unbind ( TAO_EC_ProxyPushConsumer * consumer ) [virtual]
 

Wheneve a ProxyPushConsumer is about to be destroyed it calls this method to inform the Supplier_Filter that it should release any resources related to it. Supplier_Filter strategies that are bound to a particular ProxyConsumer can use this opportunity to destroy themselves; filter strategies that do not keep ProxyPushConsumer specific information can simply ignore the message.

Reimplemented from TAO_EC_Supplier_Filter.


Member Data Documentation

TAO_ESF_Proxy_Collection< TAO_EC_ProxyPushSupplier >* TAO_EC_Per_Supplier_Filter::collection_ [private]
 

Keep the collection of proxies for the consumers that may be interested in our events.

TAO_EC_ProxyPushConsumer * TAO_EC_Per_Supplier_Filter::consumer_ [private]
 

The proxy for the supplier we are bound to.

TAO_EC_Event_Channel * TAO_EC_Per_Supplier_Filter::event_channel_ [private]
 

The event channel, used to locate the set of consumers.

TAO_SYNCH_MUTEX TAO_EC_Per_Supplier_Filter::lock_ [private]
 

Locking.

CORBA::ULong TAO_EC_Per_Supplier_Filter::refcnt_ [private]
 

Reference counting.


The documentation for this class was generated from the following files:
Generated at Fri Oct 5 08:22:45 2001 for TAO_RTEvent by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000