TAO_RTEvent  2.0.8
Public Member Functions | Private Attributes
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 Member Functions

 TAO_EC_Per_Supplier_Filter (TAO_EC_Event_Channel_Base *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)
virtual void reconnected (TAO_EC_ProxyPushSupplier *supplier)
virtual void disconnected (TAO_EC_ProxyPushSupplier *supplier)
virtual void shutdown (void)
 The event channel is shutting down.
virtual void push (const RtecEventComm::EventSet &event, TAO_EC_ProxyPushConsumer *consumer)
virtual void push_scheduled_event (RtecEventComm::EventSet &event, const TAO_EC_QOS_Info &event_info)
virtual CORBA::ULong _decr_refcnt (void)
virtual CORBA::ULong _incr_refcnt (void)

Private Attributes

TAO_EC_Event_Channel_Baseevent_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_
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_Base ec)

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]
CORBA::ULong TAO_EC_Per_Supplier_Filter::_incr_refcnt ( void  ) [virtual]

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

Implements 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.

Implements TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::connected ( TAO_EC_ProxyPushSupplier supplier) [virtual]

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

Implements TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::disconnected ( TAO_EC_ProxyPushSupplier supplier) [virtual]
void TAO_EC_Per_Supplier_Filter::push ( const RtecEventComm::EventSet event,
TAO_EC_ProxyPushConsumer consumer 
) [virtual]

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

Implements TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::push_scheduled_event ( RtecEventComm::EventSet event,
const TAO_EC_QOS_Info event_info 
) [virtual]

Events are first scheduled by the TAO_EC_Scheduling_Strategy, and then pushed through this class again.

Implements TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::reconnected ( TAO_EC_ProxyPushSupplier supplier) [virtual]
void TAO_EC_Per_Supplier_Filter::shutdown ( void  ) [virtual]

The event channel is shutting down.

Implements 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.

Implements TAO_EC_Supplier_Filter.


Member Data Documentation

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

The proxy for the supplier we are bound to.

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

Locking.

Reference counting.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines