TAO_ESF  2.2.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL > Class Template Reference

TAO_ESF_Copy_On_Write. More...

#include <ESF_Copy_On_Write.h>

Inheritance diagram for TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >:
Inheritance graph
Collaboration diagram for TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >:
Collaboration graph

Public Types

typedef
TAO_ESF_Copy_On_Write_Read_Guard
< COLLECTION, ITERATOR,
ACE_SYNCH_MUTEX_T
Read_Guard
 Constructor. More...
 
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. More...
 
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. More...
 
virtual void shutdown (void)
 The EC is shutting down, must release all the elements. More...
 
- Public Member Functions inherited from TAO_ESF_Proxy_Collection< PROXY >
virtual ~TAO_ESF_Proxy_Collection (void)
 destructor More...
 

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. More...
 
int pending_writes_
 Number of pending writes. More...
 
int writing_
 
ACE_SYNCH_CONDITION_T cond_
 A condition variable to wait to synchronize multiple writers. More...
 
Collectioncollection_
 The collection, with reference counting added. More...
 

Detailed Description

template<class PROXY, class COLLECTION, class ITERATOR, ACE_SYNCH_DECL>
class TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >

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

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
typedef TAO_ESF_Copy_On_Write_Collection<COLLECTION,ITERATOR> TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::Collection
private
template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
typedef TAO_ESF_Copy_On_Write_Read_Guard<COLLECTION,ITERATOR,ACE_SYNCH_MUTEX_T> TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::Read_Guard

Constructor.

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
typedef TAO_ESF_Copy_On_Write_Write_Guard<COLLECTION,ITERATOR,ACE_SYNCH_USE> TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::Write_Guard

Constructor & Destructor Documentation

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::TAO_ESF_Copy_On_Write ( void  )
template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::~TAO_ESF_Copy_On_Write ( void  )

Destructor.

Member Function Documentation

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
void TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::connected ( PROXY *  proxy)
virtual

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

Implements TAO_ESF_Proxy_Collection< PROXY >.

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
void TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::disconnected ( PROXY *  proxy)
virtual

Remove an element from the collection.

Implements TAO_ESF_Proxy_Collection< PROXY >.

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
void TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::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 >.

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
void TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::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 >.

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
void TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::shutdown ( void  )
virtual

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

Implements TAO_ESF_Proxy_Collection< PROXY >.

Member Data Documentation

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
Collection* TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::collection_
private

The collection, with reference counting added.

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
ACE_SYNCH_CONDITION_T TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::cond_
private

A condition variable to wait to synchronize multiple writers.

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
ACE_SYNCH_MUTEX_T TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::mutex_
private

A mutex to serialize access to the collection pointer.

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
int TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::pending_writes_
private

Number of pending writes.

template<class PROXY , class COLLECTION , class ITERATOR , ACE_SYNCH_DECL >
int TAO_ESF_Copy_On_Write< PROXY, COLLECTION, ITERATOR, ACE_SYNCH_DECL >::writing_
private

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: