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

[legend]
Collaboration diagram for TAO_EC_Per_Supplier_Filter:

[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_Channel* | event_channel_
| The event channel, used to locate the set of consumers.
TAO_EC_ProxyPushConsumer* | consumer_
| 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:

- EC_Per_Supplier_Filter.h
- EC_Per_Supplier_Filter.cpp