#include <ESF_Delayed_Changes.h>
Inheritance diagram for TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >:
This class implements the Delayed Operations protocol to solve the concurrency challenges outlined in the documentation of TAO_ESF_Proxy_Collection. In short the class delays changes by putting them on an "operation queue", the operations are stored as command objects in this queue and executed once the system is quiescent (i.e. no threads are iterating over the collection). The algorithm implemented so far is:
typedef TAO_ESF_Busy_Lock_Adapter<TAO_ESF_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE> > TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::Busy_Lock [private] |
typedef TAO_ESF_Connected_Command<TAO_ESF_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>,PROXY> TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::Connected_Command |
typedef TAO_ESF_Disconnected_Command<TAO_ESF_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>,PROXY> TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::Disconnected_Command |
typedef TAO_ESF_Reconnected_Command<TAO_ESF_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>,PROXY> TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::Reconnected_Command |
typedef TAO_ESF_Shutdown_Command<TAO_ESF_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE> > TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::Shutdown_Command |
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::TAO_ESF_Delayed_Changes | ( | void | ) |
TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::TAO_ESF_Delayed_Changes | ( | const COLLECTION & | collection | ) |
int TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::busy | ( | void | ) |
void TAO_ESF_Delayed_Changes< PROXY, C, I, >::connected | ( | PROXY *proxy | ACE_ENV_ARG_DECL | ) | [virtual] |
TAO_BEGIN_VERSIONED_NAMESPACE_DECL void TAO_ESF_Delayed_Changes< PROXY, C, I, >::connected_i | ( | PROXY *proxy | ACE_ENV_ARG_DECL | ) |
void TAO_ESF_Delayed_Changes< PROXY, C, I, >::disconnected | ( | PROXY *proxy | ACE_ENV_ARG_DECL | ) | [virtual] |
void TAO_ESF_Delayed_Changes< PROXY, C, I, >::disconnected_i | ( | PROXY *proxy | ACE_ENV_ARG_DECL | ) |
int TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::execute_delayed_operations | ( | void | ) |
void TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::for_each | ( | TAO_ESF_Worker< PROXY > *worker | ACE_ENV_ARG_DECL | ) | [virtual] |
int TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::idle | ( | void | ) |
void TAO_ESF_Delayed_Changes< PROXY, C, I, >::reconnected | ( | PROXY *proxy | ACE_ENV_ARG_DECL | ) | [virtual] |
void TAO_ESF_Delayed_Changes< PROXY, C, I, >::reconnected_i | ( | PROXY *proxy | ACE_ENV_ARG_DECL | ) |
void TAO_ESF_Delayed_Changes< PROXY, C, I, >::shutdown | ( | ACE_ENV_SINGLE_ARG_DECL | ) | [virtual] |
void TAO_ESF_Delayed_Changes< PROXY, C, I, >::shutdown_i | ( | ACE_ENV_SINGLE_ARG_DECL | ) |
ACE_SYNCH_CONDITION_T TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::busy_cond_ [private] |
CORBA::ULong TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::busy_count_ [private] |
CORBA::ULong TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::busy_hwm_ [private] |
Control variables for the concurrency policies.
ACE_SYNCH_MUTEX_T TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::busy_lock_ [private] |
COLLECTION TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::collection_ [private] |
ACE_Unbounded_Queue<ACE_Command_Base*> TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::command_queue_ [private] |
Busy_Lock TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::lock_ [private] |
CORBA::ULong TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::max_write_delay_ [private] |
CORBA::ULong TAO_ESF_Delayed_Changes< PROXY, COLLECTION, ITERATOR, >::write_delay_count_ [private] |