#include <EC_Per_Supplier_Filter.h>


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_Base * | 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_ |
| CORBA::ULong | refcnt_ |
| Reference counting. | |
| TAO_SYNCH_MUTEX | lock_ |
| Locking. | |
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.
| TAO_BEGIN_VERSIONED_NAMESPACE_DECL 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.
| 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::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.
| 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::reconnected | ( | TAO_EC_ProxyPushSupplier * | supplier | ) | [virtual] |
Implements TAO_EC_Supplier_Filter.
| void TAO_EC_Per_Supplier_Filter::disconnected | ( | TAO_EC_ProxyPushSupplier * | supplier | ) | [virtual] |
Implements TAO_EC_Supplier_Filter.
| void TAO_EC_Per_Supplier_Filter::shutdown | ( | void | ) | [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.
| CORBA::ULong TAO_EC_Per_Supplier_Filter::_decr_refcnt | ( | void | ) | [virtual] |
Implements 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.
Implements TAO_EC_Supplier_Filter.
The event channel, used to locate the set of consumers.
The proxy for the supplier we are bound to.
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.
Reference counting.
TAO_SYNCH_MUTEX TAO_EC_Per_Supplier_Filter::lock_ [private] |
Locking.
1.5.3