TAO_ESF  2.0.7
Public Types | Public Member Functions | Private Types | Private Attributes
TAO_ESF_Copy_On_Write Class Reference

TAO_ESF_Copy_On_Write. More...

#include <ESF_Copy_On_Write.h>

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

List of all members.

Public Types

typedef
TAO_ESF_Copy_On_Write_Read_Guard
< COLLECTION, ITERATOR,
ACE_SYNCH_MUTEX_T
Read_Guard
 Constructor.
typedef
TAO_ESF_Copy_On_Write_Write_Guard
< COLLECTION, ITERATOR,
ACE_SYNCH_USE
Write_Guard

Public Member Functions

 TAO_ESF_Copy_On_Write (void)
 ~TAO_ESF_Copy_On_Write (void)
 Destructor.
virtual void for_each (TAO_ESF_Worker< PROXY > *worker)
virtual void connected (PROXY *proxy)
virtual void reconnected (PROXY *proxy)
virtual void disconnected (PROXY *proxy)
 Remove an element from the collection.
virtual void shutdown (void)
 The EC is shutting down, must release all the elements.

Private Types

typedef
TAO_ESF_Copy_On_Write_Collection
< COLLECTION, ITERATOR > 
Collection

Private Attributes

ACE_SYNCH_MUTEX_T mutex_
 A mutex to serialize access to the collection pointer.
int pending_writes_
 Number of pending writes.
int writing_
ACE_SYNCH_CONDITION_T cond_
 A condition variable to wait to synchronize multiple writers.
Collectioncollection_
 The collection, with reference counting added.

Detailed Description

TAO_ESF_Copy_On_Write.

Implement the Copy_On_Write protocol The class is parametric on the kind of collection and locking mechanism used.


Member Typedef Documentation

Constructor.


Constructor & Destructor Documentation

TAO_ESF_Copy_On_Write::TAO_ESF_Copy_On_Write ( void  )
TAO_ESF_Copy_On_Write::~TAO_ESF_Copy_On_Write ( void  )

Destructor.


Member Function Documentation

void TAO_ESF_Copy_On_Write::connected ( PROXY *  proxy) [virtual]

Insert a new element into the collection. The collection assumes ownership of the element.

Implements TAO_ESF_Proxy_Collection< PROXY >.

void TAO_ESF_Copy_On_Write::disconnected ( PROXY *  proxy) [virtual]

Remove an element from the collection.

Implements TAO_ESF_Proxy_Collection< PROXY >.

void TAO_ESF_Copy_On_Write::for_each ( TAO_ESF_Worker< PROXY > *  worker) [virtual]

Iterate over the collection and invoke worker->work() for each member of the collection. This encapsulates

Implements TAO_ESF_Proxy_Collection< PROXY >.

void TAO_ESF_Copy_On_Write::reconnected ( PROXY *  proxy) [virtual]

Insert an element into the collection. No errors can be raised if the element is already present. The collection assumes ownership, i.e. must invoke <proxy->_decr_refcnt()> if the element is already present in the collection.

Implements TAO_ESF_Proxy_Collection< PROXY >.

void TAO_ESF_Copy_On_Write::shutdown ( void  ) [virtual]

The EC is shutting down, must release all the elements.

Implements TAO_ESF_Proxy_Collection< PROXY >.


Member Data Documentation

The collection, with reference counting added.

A condition variable to wait to synchronize multiple writers.

A mutex to serialize access to the collection pointer.

Number of pending writes.

If non-zero then a thread is changing the collection. Many threads can use the collection simulatenously, but only one change it.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Defines