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