TAO_RTEvent 4.0.2
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
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]

Public Member Functions

 TAO_EC_Per_Supplier_Filter (TAO_EC_Event_Channel_Base *ec)
 Constructor.
 
virtual ~TAO_EC_Per_Supplier_Filter ()
 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 ()
 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 ()
 
virtual CORBA::ULong _incr_refcnt ()
 
- Public Member Functions inherited from TAO_EC_Supplier_Filter
virtual ~TAO_EC_Supplier_Filter ()
 Destructor.
 

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_Per_Supplier_Filter ( TAO_EC_Event_Channel_Base * ec)

Constructor.

◆ ~TAO_EC_Per_Supplier_Filter()

TAO_EC_Per_Supplier_Filter::~TAO_EC_Per_Supplier_Filter ( )
virtual

Destructor.

Member Function Documentation

◆ _decr_refcnt()

CORBA::ULong TAO_EC_Per_Supplier_Filter::_decr_refcnt ( )
virtual

◆ _incr_refcnt()

CORBA::ULong TAO_EC_Per_Supplier_Filter::_incr_refcnt ( )
virtual

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

Implements TAO_EC_Supplier_Filter.

◆ bind()

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.

◆ connected()

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.

◆ disconnected()

void TAO_EC_Per_Supplier_Filter::disconnected ( TAO_EC_ProxyPushSupplier * supplier)
virtual

◆ push()

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.

◆ push_scheduled_event()

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.

◆ reconnected()

void TAO_EC_Per_Supplier_Filter::reconnected ( TAO_EC_ProxyPushSupplier * supplier)
virtual

◆ shutdown()

void TAO_EC_Per_Supplier_Filter::shutdown ( )
virtual

The event channel is shutting down.

Implements TAO_EC_Supplier_Filter.

◆ unbind()

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

◆ collection_

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.

◆ consumer_

TAO_EC_ProxyPushConsumer* TAO_EC_Per_Supplier_Filter::consumer_
private

The proxy for the supplier we are bound to.

◆ event_channel_

TAO_EC_Event_Channel_Base* TAO_EC_Per_Supplier_Filter::event_channel_
private

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

◆ lock_

TAO_SYNCH_MUTEX TAO_EC_Per_Supplier_Filter::lock_
private

Locking.

◆ refcnt_

CORBA::ULong TAO_EC_Per_Supplier_Filter::refcnt_
private

Reference counting.


The documentation for this class was generated from the following files: