Classes |
struct | Header_Compare |
struct | Observer_Entry |
| The data kept for each observer. More...
|
Public Types |
typedef ACE_Map_Manager
< RtecEventChannelAdmin::Observer_Handle,
Observer_Entry, ACE_Null_Mutex > | Observer_Map |
typedef ACE_Map_Iterator
< RtecEventChannelAdmin::Observer_Handle,
Observer_Entry, ACE_Null_Mutex > | Observer_Map_Iterator |
typedef ACE_RB_Tree
< RtecEventComm::EventHeader,
int, Header_Compare,
ACE_Null_Mutex > | Headers |
typedef ACE_RB_Tree_Iterator
< RtecEventComm::EventHeader,
int, Header_Compare,
ACE_Null_Mutex > | HeadersIterator |
Public Member Functions |
| TAO_EC_Basic_ObserverStrategy (TAO_EC_Event_Channel_Base *ec, ACE_Lock *lock) |
| Constructor.
|
virtual | ~TAO_EC_Basic_ObserverStrategy (void) |
| Destructor.
|
virtual
RtecEventChannelAdmin::Observer_Handle | append_observer (RtecEventChannelAdmin::Observer_ptr) |
| The basic methods to support the EC strategies.
|
virtual void | remove_observer (RtecEventChannelAdmin::Observer_Handle) |
virtual void | connected (TAO_EC_ProxyPushConsumer *) |
virtual void | disconnected (TAO_EC_ProxyPushConsumer *) |
virtual void | connected (TAO_EC_ProxyPushSupplier *) |
virtual void | disconnected (TAO_EC_ProxyPushSupplier *) |
Protected Member Functions |
|
virtual void | consumer_qos_update (TAO_EC_ProxyPushSupplier *supplier) |
| Helpers.
|
virtual void | supplier_qos_update (TAO_EC_ProxyPushConsumer *consumer) |
| Recompute EC supplier publications and send them out to all observers.
|
void | fill_qos (RtecEventChannelAdmin::ConsumerQOS &qos) |
| Compute consumer QOS.
|
void | fill_qos (RtecEventChannelAdmin::SupplierQOS &qos) |
| Compute supplier QOS.
|
int | create_observer_list (RtecEventChannelAdmin::Observer_var *&lst) |
Protected Attributes |
TAO_EC_Event_Channel_Base * | event_channel_ |
| The event channel.
|
ACE_Lock * | lock_ |
| The lock.
|
RtecEventChannelAdmin::Observer_Handle | handle_generator_ |
Observer_Map | observers_ |
| Keep the set of Observers.
|
A simple observer strategy.
This class simply keeps the information about the current list of observers, whenever the list of consumers and/or suppliers changes in queries the EC, computes the global subscription and/or publication list and sends the update message to all the observers.
Memory Management
It assumes ownership of the lock, but not of the Event_Channel.