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. More...
virtual | ~TAO_EC_Per_Supplier_Filter (void)
| Destructor. More...
virtual void | bind (TAO_EC_ProxyPushConsumer *consumer)
virtual void | unbind (TAO_EC_ProxyPushConsumer *consumer)
virtual void | connected (TAO_EC_ProxyPushSupplier *supplier ACE_ENV_ARG_DECL)
| Concrete implementations can use this methods to keep track of the consumers interested in this events. More...
virtual void | reconnected (TAO_EC_ProxyPushSupplier *supplier ACE_ENV_ARG_DECL)
virtual void | disconnected (TAO_EC_ProxyPushSupplier *supplier ACE_ENV_ARG_DECL)
virtual void | shutdown (ACE_ENV_SINGLE_ARG_DECL)
| The event channel is shutting down. More...
virtual void | push (const RtecEventComm::EventSet &event, TAO_EC_ProxyPushConsumer *consumer ACE_ENV_ARG_DECL_NOT_USED)
| The ProxyPushConsumer delegates on this class to actually send the event. More...
virtual void | push_scheduled_event (RtecEventComm::EventSet &event, const TAO_EC_QOS_Info &event_info ACE_ENV_ARG_DECL)
| Events are first scheduled by the TAO_EC_Scheduling_Strategy, and then pushed through this class again. More...
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. More...
## Private Attributes
TAO_EC_Event_Channel * | event_channel_
| The event channel, used to locate the set of consumers. More...
TAO_EC_ProxyPushConsumer * | consumer_
| The proxy for the supplier we are bound to. More...
TAO_ESF_Proxy_Collection< TAO_EC_ProxyPushSupplier > * | collection_
| Keep the collection of proxies for the consumers that may be interested in our events. More...
CORBA::ULong | refcnt_
| Reference counting. More...
TAO_SYNCH_MUTEX | lock_
| Locking. More...

## 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 | ) |

| 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 | ACE_ENV_ARG_DECL | ) | `[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 | ACE_ENV_ARG_DECL | ) | `[virtual]`

| Reimplemented from TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::push | ( | const RtecEventComm::EventSet & | event,
|  | TAO_EC_ProxyPushConsumer *consumer | ACE_ENV_ARG_DECL
| ) | `[virtual]`

| The ProxyPushConsumer delegates on this class to actually send the event. Reimplemented from TAO_EC_Supplier_Filter.

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

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

void TAO_EC_Per_Supplier_Filter::reconnected | ( | TAO_EC_ProxyPushSupplier *supplier | ACE_ENV_ARG_DECL | ) | `[virtual]`

| Reimplemented from TAO_EC_Supplier_Filter.

void TAO_EC_Per_Supplier_Filter::shutdown | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | `[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