ACE
6.3.3
|
Abstract representation of ACE tokens. More...
#include <Local_Tokens.h>
Public Types | |
enum | TOKEN_TYPES { MUTEX, RWLOCK } |
typedef ACE_Unbounded_Stack< ACE_TPQ_Entry * > | OWNER_STACK |
Stack of owners. More... | |
Public Member Functions | |
ACE_Tokens (void) | |
Null constructor. More... | |
virtual | ~ACE_Tokens (void) |
Destructor. More... | |
virtual int | acquire (ACE_TPQ_Entry *caller, int ignore_deadlock, int notify)=0 |
No implementation. More... | |
virtual int | tryacquire (ACE_TPQ_Entry *caller)=0 |
No implementation. More... | |
virtual int | renew (ACE_TPQ_Entry *caller, int requeue_position)=0 |
No implementation. More... | |
virtual int | release (ACE_TPQ_Entry *caller)=0 |
No implementation. More... | |
void | make_owner (ACE_TPQ_Entry *caller) |
void | remove (ACE_TPQ_Entry *caller) |
Remove the caller from the waiter list. More... | |
virtual int | owners (OWNER_STACK &o, const ACE_TCHAR *id)=0 |
virtual int | is_waiting_for (const ACE_TCHAR *id)=0 |
Returns 1 if id is waiting for this token. 0 otherwise. More... | |
virtual int | is_owner (const ACE_TCHAR *id)=0 |
Returns 1 if id is an owner of this token. 0 otherwise. More... | |
virtual ACE_Token_Proxy_Queue * | waiters (void) |
Return the queue of waiters. More... | |
virtual int | no_of_waiters (void) |
const ACE_TCHAR * | owner_id (void) |
The current owner. More... | |
const ACE_TCHAR * | name (void) |
Token name. More... | |
void | inc_reference (void) |
int | dec_reference (void) |
void | dump (void) const |
Dump the state of the class. More... | |
virtual int | type (void) const =0 |
void | visit (int v) |
Mark or unmark the token as visited. More... | |
int | visited (void) |
Check if the token has been visited. More... | |
ACE_TPQ_Entry * | owner (void) |
All the data of the current owner. More... | |
Protected Attributes | |
int | visited_ |
For the deadlock detection algorithm. More... | |
int | reference_count_ |
Reference count. More... | |
ACE_Token_Proxy_Queue | waiters_ |
List of client's owning and waiting the token. More... | |
ACE_TCHAR | token_name_ [ACE_MAXTOKENNAMELEN] |
Name of token. More... | |
Abstract representation of ACE tokens.
Not a public interface. Currently, I don't see a reason for providing an abstract interface at this level of the library. As of yet, no one uses ACE_Tokens derivatives through this abstract interface except for ACE_Token_Manager. It only uses the statistical methods which are shared by all Tokens. For that reason, it still makes since to have a common base class. However, acquire, renew, and release do not need to have matching interfaces throughout all Tokens. To add a new type of token (e.g. semaphore), this class must be subtyped to define the new semantics. See ACE_Token_Manager for details.
Stack of owners.
ACE_Tokens::ACE_Tokens | ( | void | ) |
Null constructor.
|
virtual |
Destructor.
|
pure virtual |
No implementation.
Implemented in ACE_RW_Token, and ACE_Mutex_Token.
|
inline |
void ACE_Tokens::dump | ( | void | ) | const |
Dump the state of the class.
|
inline |
|
pure virtual |
Returns 1 if id is an owner of this token. 0 otherwise.
Implemented in ACE_RW_Token, and ACE_Mutex_Token.
|
pure virtual |
Returns 1 if id is waiting for this token. 0 otherwise.
Implemented in ACE_RW_Token, and ACE_Mutex_Token.
void ACE_Tokens::make_owner | ( | ACE_TPQ_Entry * | caller | ) |
Move the caller to the front of the waiter list. This is for use with remote mutexes and shadow mutexes.
|
inline |
Token name.
|
virtual |
Return the number of proxies that are currently waiting to get the token.
|
inline |
All the data of the current owner.
|
inline |
The current owner.
|
pure virtual |
Returns a stack of the current owners. Returns -1 on error, 0 on success. If id is non-zero, returns 1 if id is an owner.
Implemented in ACE_RW_Token, and ACE_Mutex_Token.
|
pure virtual |
No implementation.
Implemented in ACE_RW_Token, and ACE_Mutex_Token.
|
inline |
Remove the caller from the waiter list.
|
pure virtual |
No implementation.
Implemented in ACE_RW_Token, and ACE_Mutex_Token.
|
pure virtual |
No implementation.
Implemented in ACE_RW_Token, and ACE_Mutex_Token.
|
pure virtual |
Provides a manual RTTI mechanism. This method is used only by ACE_Token_Request so that the type of a token can be sent to a remote Token Server.
Implemented in ACE_RW_Token, and ACE_Mutex_Token.
|
inline |
Mark or unmark the token as visited.
|
inline |
Check if the token has been visited.
|
virtual |
Return the queue of waiters.
|
protected |
Reference count.
|
protected |
Name of token.
|
protected |
For the deadlock detection algorithm.
|
protected |
List of client's owning and waiting the token.