#include <ESF_Copy_On_Write.h>
Inheritance diagram for TAO_ESF_Copy_On_Write:
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 Methods | |
TAO_ESF_Copy_On_Write (void) | |
~TAO_ESF_Copy_On_Write (void) | |
Destructor. More... | |
virtual void | for_each (TAO_ESF_Worker< PROXY > *worker ACE_ENV_ARG_DECL) |
virtual void | connected (PROXY *proxy ACE_ENV_ARG_DECL) |
Insert a new element into the collection. The collection assumes ownership of the element. More... | |
virtual void | reconnected (PROXY *proxy ACE_ENV_ARG_DECL) |
virtual void | disconnected (PROXY *proxy ACE_ENV_ARG_DECL) |
Remove an element from the collection. More... | |
virtual void | shutdown (ACE_ENV_SINGLE_ARG_DECL) |
The EC is shutting down, must release all the elements. 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... | |
Collection * | collection_ |
The collection, with reference counting added. More... |
Implement the Copy_On_Write protocol The class is parametric on the kind of collection and locking mechanism used.
|
|
|
Constructor.
|
|
|
|
|
|
Destructor.
|
|
Insert a new element into the collection. The collection assumes ownership of the element.
Reimplemented from TAO_ESF_Proxy_Collection. |
|
Remove an element from the collection.
Reimplemented from TAO_ESF_Proxy_Collection. |
|
Iterate over the collection and invoke worker->work() for each member of the collection. This encapsulates Reimplemented from TAO_ESF_Proxy_Collection. |
|
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. Reimplemented from TAO_ESF_Proxy_Collection. |
|
The EC is shutting down, must release all the elements.
Reimplemented from TAO_ESF_Proxy_Collection. |
|
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. |