TAO_RTEvent 4.0.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
TAO_EC_Reactive_ObserverStrategy Class Reference

A reactive observer strategy. More...

#include <EC_ObserverStrategy.h>

Inheritance diagram for TAO_EC_Reactive_ObserverStrategy:
Inheritance graph
[legend]
Collaboration diagram for TAO_EC_Reactive_ObserverStrategy:
Collaboration graph
[legend]

Public Member Functions

 TAO_EC_Reactive_ObserverStrategy (TAO_EC_Event_Channel_Base *ec, ACE_Lock *lock)
 Constructor.
 
virtual ~TAO_EC_Reactive_ObserverStrategy ()
 Destructor.
 
- Public Member Functions inherited from TAO_EC_Basic_ObserverStrategy
 TAO_EC_Basic_ObserverStrategy (TAO_EC_Event_Channel_Base *ec, ACE_Lock *lock)
 Constructor.
 
virtual ~TAO_EC_Basic_ObserverStrategy ()
 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 *)
 
- Public Member Functions inherited from TAO_EC_ObserverStrategy
virtual ~TAO_EC_ObserverStrategy ()
 Destructor.
 

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.
 
int create_observer_map (Observer_Map &map)
 
void observer_not_exists (Observer_Entry &observer)
 The observer doesn't exist anymore.
 
- Protected Member Functions inherited from TAO_EC_Basic_ObserverStrategy
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)
 

Additional Inherited Members

- Public Types inherited from TAO_EC_Basic_ObserverStrategy
typedef ACE_Map_Manager< RtecEventChannelAdmin::Observer_Handle, Observer_Entry, ACE_Null_MutexObserver_Map
 
typedef ACE_Map_Iterator< RtecEventChannelAdmin::Observer_Handle, Observer_Entry, ACE_Null_MutexObserver_Map_Iterator
 
typedef ACE_RB_Tree< RtecEventComm::EventHeader, int, Header_Compare, ACE_Null_MutexHeaders
 
typedef ACE_RB_Tree_Iterator< RtecEventComm::EventHeader, int, Header_Compare, ACE_Null_MutexHeadersIterator
 
- Protected Attributes inherited from TAO_EC_Basic_ObserverStrategy
TAO_EC_Event_Channel_Baseevent_channel_
 The event channel.
 
ACE_Locklock_
 The lock.
 
RtecEventChannelAdmin::Observer_Handle handle_generator_
 
Observer_Map observers_
 Keep the set of Observers.
 

Detailed Description

A reactive 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. When an observer isn't reachable it is removed from the observer list.

Memory Management

It assumes ownership of the <lock>, but not of the Event_Channel.

Constructor & Destructor Documentation

◆ TAO_EC_Reactive_ObserverStrategy()

TAO_EC_Reactive_ObserverStrategy::TAO_EC_Reactive_ObserverStrategy ( TAO_EC_Event_Channel_Base * ec,
ACE_Lock * lock )

Constructor.

◆ ~TAO_EC_Reactive_ObserverStrategy()

TAO_EC_Reactive_ObserverStrategy::~TAO_EC_Reactive_ObserverStrategy ( )
virtual

Destructor.

Member Function Documentation

◆ consumer_qos_update()

void TAO_EC_Reactive_ObserverStrategy::consumer_qos_update ( TAO_EC_ProxyPushSupplier * supplier)
protectedvirtual

Helpers.

Recompute EC consumer subscriptions and send them out to all observers.

Reimplemented from TAO_EC_Basic_ObserverStrategy.

◆ create_observer_map()

int TAO_EC_Reactive_ObserverStrategy::create_observer_map ( Observer_Map & map)
protected

Copies all current observers into a map and passes it back to the caller through map.

Returns
Returns the size of the map.

◆ observer_not_exists()

void TAO_EC_Reactive_ObserverStrategy::observer_not_exists ( Observer_Entry & observer)
protected

The observer doesn't exist anymore.

◆ supplier_qos_update()

void TAO_EC_Reactive_ObserverStrategy::supplier_qos_update ( TAO_EC_ProxyPushConsumer * consumer)
protectedvirtual

Recompute EC supplier publications and send them out to all observers.

Reimplemented from TAO_EC_Basic_ObserverStrategy.


The documentation for this class was generated from the following files: