Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TAO_EC_Basic_ObserverStrategy Class Reference

A simple observer strategy. More...

#include <EC_ObserverStrategy.h>

Inheritance diagram for TAO_EC_Basic_ObserverStrategy

Inheritance graph
[legend]
Collaboration diagram for TAO_EC_Basic_ObserverStrategy:

Collaboration graph
[legend]
List of all members.

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 Methods

 TAO_EC_Basic_ObserverStrategy (TAO_EC_Event_Channel* ec, ACE_Lock* lock)
 Constructor.

virtual ~TAO_EC_Basic_ObserverStrategy (void)
 Destructor.

virtual RtecEventChannelAdmin::Observer_Handle append_observer (RtecEventChannelAdmin::Observer_ptr, CORBA::Environment &env) throw ( CORBA::SystemException, RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER)
 The basic methods to support the EC strategies.

virtual void remove_observer ( RtecEventChannelAdmin::Observer_Handle, CORBA::Environment &env) throw ( CORBA::SystemException, RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER)
virtual void connected (TAO_EC_ProxyPushConsumer*, CORBA::Environment&)
 Used by the EC to inform the ObserverStrategy that a Consumer has connected or disconnected from it.

virtual void disconnected (TAO_EC_ProxyPushConsumer*, CORBA::Environment&)
virtual void connected (TAO_EC_ProxyPushSupplier*, CORBA::Environment&)
 Used by the EC to inform the ObserverStrategy that a Consumer has connected or disconnected from it.

virtual void disconnected (TAO_EC_ProxyPushSupplier*, CORBA::Environment&)

Protected Methods

void fill_qos (RtecEventChannelAdmin::ConsumerQOS &qos, CORBA::Environment &env)
 Helper functions to compute the consumer and supplier QOS.

void fill_qos (RtecEventChannelAdmin::SupplierQOS &qos, CORBA::Environment &env)

Protected Attributes

TAO_EC_Event_Channelevent_channel_
 The event channel.

ACE_Locklock_
 The lock.

RtecEventChannelAdmin::Observer_Handle handle_generator_
 The handles are generated in sequential order, but are opaque to the client.

Observer_Map observers_
 Keep the set of Observers.


Detailed Description

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.


Member Typedef Documentation

typedef ACE_RB_Tree<RtecEventComm::EventHeader,int,Header_Compare,ACE_Null_Mutex> TAO_EC_Basic_ObserverStrategy::Headers
 

typedef ACE_RB_Tree_Iterator<RtecEventComm::EventHeader,int,Header_Compare,ACE_Null_Mutex> TAO_EC_Basic_ObserverStrategy::HeadersIterator
 

typedef ACE_Map_Manager<RtecEventChannelAdmin::Observer_Handle,Observer_Entry,ACE_Null_Mutex> TAO_EC_Basic_ObserverStrategy::Observer_Map
 

typedef ACE_Map_Iterator<RtecEventChannelAdmin::Observer_Handle,Observer_Entry,ACE_Null_Mutex> TAO_EC_Basic_ObserverStrategy::Observer_Map_Iterator
 


Constructor & Destructor Documentation

ACE_INLINE TAO_EC_Basic_ObserverStrategy::TAO_EC_Basic_ObserverStrategy ( TAO_EC_Event_Channel * ec,
ACE_Lock * lock )
 

Constructor.

TAO_EC_Basic_ObserverStrategy::~TAO_EC_Basic_ObserverStrategy ( void ) [virtual]
 

Destructor.


Member Function Documentation

RtecEventChannelAdmin::Observer_Handle TAO_EC_Basic_ObserverStrategy::append_observer ( RtecEventChannelAdmin::Observer_ptr obs,
CORBA::Environment & ACE_TRY_ENV ) throw ( CORBA::SystemException, RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER) [virtual]
 

The basic methods to support the EC strategies.

Reimplemented from TAO_EC_ObserverStrategy.

void TAO_EC_Basic_ObserverStrategy::connected ( TAO_EC_ProxyPushSupplier * supplier,
CORBA::Environment & ACE_TRY_ENV ) [virtual]
 

Used by the EC to inform the ObserverStrategy that a Consumer has connected or disconnected from it.

Reimplemented from TAO_EC_ObserverStrategy.

void TAO_EC_Basic_ObserverStrategy::connected ( TAO_EC_ProxyPushConsumer * consumer,
CORBA::Environment & ACE_TRY_ENV ) [virtual]
 

Used by the EC to inform the ObserverStrategy that a Consumer has connected or disconnected from it.

Reimplemented from TAO_EC_ObserverStrategy.

void TAO_EC_Basic_ObserverStrategy::disconnected ( TAO_EC_ProxyPushSupplier * supplier,
CORBA::Environment & ACE_TRY_ENV ) [virtual]
 

Reimplemented from TAO_EC_ObserverStrategy.

void TAO_EC_Basic_ObserverStrategy::disconnected ( TAO_EC_ProxyPushConsumer * consumer,
CORBA::Environment & ACE_TRY_ENV ) [virtual]
 

Reimplemented from TAO_EC_ObserverStrategy.

void TAO_EC_Basic_ObserverStrategy::fill_qos ( RtecEventChannelAdmin::SupplierQOS & qos,
CORBA::Environment & ACE_TRY_ENV ) [protected]
 

void TAO_EC_Basic_ObserverStrategy::fill_qos ( RtecEventChannelAdmin::ConsumerQOS & qos,
CORBA::Environment & env ) [protected]
 

Helper functions to compute the consumer and supplier QOS.

void TAO_EC_Basic_ObserverStrategy::remove_observer ( RtecEventChannelAdmin::Observer_Handle handle,
CORBA::Environment & ACE_TRY_ENV ) throw ( CORBA::SystemException, RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER) [virtual]
 

Reimplemented from TAO_EC_ObserverStrategy.


Member Data Documentation

TAO_EC_Event_Channel * TAO_EC_Basic_ObserverStrategy::event_channel_ [protected]
 

The event channel.

RtecEventChannelAdmin::Observer_Handle TAO_EC_Basic_ObserverStrategy::handle_generator_ [protected]
 

The handles are generated in sequential order, but are opaque to the client.

ACE_Lock * TAO_EC_Basic_ObserverStrategy::lock_ [protected]
 

The lock.

Observer_Map TAO_EC_Basic_ObserverStrategy::observers_ [protected]
 

Keep the set of Observers.


The documentation for this class was generated from the following files:
Generated at Wed Nov 21 12:06:51 2001 for TAO_RTEvent by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000