#include <Local_Tokens.h>
Inheritance diagram for ACE_Tokens:


Public Types | |
| typedef ACE_Unbounded_Stack< ACE_TPQ_Entry * > | OWNER_STACK |
| Stack of owners. | |
| enum | TOKEN_TYPES { MUTEX, RWLOCK } |
Public Member Functions | |
| ACE_Tokens (void) | |
| Null constructor. | |
| virtual | ~ACE_Tokens (void) |
| Destructor. | |
| virtual int | acquire (ACE_TPQ_Entry *caller, int ignore_deadlock, int notify)=0 |
| No implementation. | |
| virtual int | tryacquire (ACE_TPQ_Entry *caller)=0 |
| No implementation. | |
| virtual int | renew (ACE_TPQ_Entry *caller, int requeue_position)=0 |
| No implementation. | |
| virtual int | release (ACE_TPQ_Entry *caller)=0 |
| No implementation. | |
| void | make_owner (ACE_TPQ_Entry *caller) |
| void | remove (ACE_TPQ_Entry *caller) |
| Remove the caller from the waiter list. | |
| 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. | |
| virtual int | is_owner (const ACE_TCHAR *id)=0 |
| Returns 1 if <id> is an owner of this token. 0 otherwise. | |
| virtual ACE_Token_Proxy_Queue * | waiters (void) |
| Return the queue of waiters. | |
| virtual int | no_of_waiters (void) |
| const ACE_TCHAR * | owner_id (void) |
| The current owner. | |
| const ACE_TCHAR * | name (void) |
| Token name. | |
| void | inc_reference (void) |
| int | dec_reference (void) |
| void | dump (void) const |
| Dump the state of the class. | |
| virtual int | type (void) const =0 |
| void | visit (int v) |
| Mark or unmark the token as visited. | |
| int | visited (void) |
| Check if the token has been visited. | |
| ACE_TPQ_Entry * | owner (void) |
| All the data of the current owner. | |
Protected Attributes | |
| int | visited_ |
| For the deadlock detection algorithm. | |
| int | reference_count_ |
| Reference count. | |
| ACE_Token_Proxy_Queue | waiters_ |
| List of client's owning and waiting the token. | |
| ACE_TCHAR | token_name_ [ACE_MAXTOKENNAMELEN] |
| Name of token. | |
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.
| ACE_Tokens::~ACE_Tokens | ( | void | ) | [virtual] |
Destructor.
| virtual int ACE_Tokens::acquire | ( | ACE_TPQ_Entry * | caller, | |
| int | ignore_deadlock, | |||
| int | notify | |||
| ) | [pure virtual] |
| int ACE_Tokens::dec_reference | ( | void | ) |
| ACE_BEGIN_VERSIONED_NAMESPACE_DECL void ACE_Tokens::dump | ( | void | ) | const |
| void ACE_Tokens::inc_reference | ( | void | ) |
| virtual int ACE_Tokens::is_owner | ( | const ACE_TCHAR * | id | ) | [pure virtual] |
Returns 1 if <id> is an owner of this token. 0 otherwise.
Implemented in ACE_Mutex_Token, and ACE_RW_Token.
| virtual int ACE_Tokens::is_waiting_for | ( | const ACE_TCHAR * | id | ) | [pure virtual] |
Returns 1 if <id> is waiting for this token. 0 otherwise.
Implemented in ACE_Mutex_Token, and ACE_RW_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.
| const ACE_TCHAR* ACE_Tokens::name | ( | void | ) |
Token name.
| int ACE_Tokens::no_of_waiters | ( | void | ) | [virtual] |
Return the number of proxies that are currently waiting to get the token.
| ACE_TPQ_Entry* ACE_Tokens::owner | ( | void | ) |
All the data of the current owner.
| const ACE_TCHAR* ACE_Tokens::owner_id | ( | void | ) |
The current owner.
| virtual int ACE_Tokens::owners | ( | OWNER_STACK & | o, | |
| const ACE_TCHAR * | id | |||
| ) | [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.
| virtual int ACE_Tokens::release | ( | ACE_TPQ_Entry * | caller | ) | [pure virtual] |
| void ACE_Tokens::remove | ( | ACE_TPQ_Entry * | caller | ) |
Remove the caller from the waiter list.
| virtual int ACE_Tokens::renew | ( | ACE_TPQ_Entry * | caller, | |
| int | requeue_position | |||
| ) | [pure virtual] |
| virtual int ACE_Tokens::tryacquire | ( | ACE_TPQ_Entry * | caller | ) | [pure virtual] |
| virtual int ACE_Tokens::type | ( | void | ) | const [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_Mutex_Token, and ACE_RW_Token.
| void ACE_Tokens::visit | ( | int | v | ) |
Mark or unmark the token as visited.
| int ACE_Tokens::visited | ( | void | ) |
Check if the token has been visited.
| ACE_Token_Proxy_Queue * ACE_Tokens::waiters | ( | void | ) | [virtual] |
Return the queue of waiters.
int ACE_Tokens::reference_count_ [protected] |
Reference count.
ACE_TCHAR ACE_Tokens::token_name_[ACE_MAXTOKENNAMELEN] [protected] |
Name of token.
int ACE_Tokens::visited_ [protected] |
For the deadlock detection algorithm.
ACE_Token_Proxy_Queue ACE_Tokens::waiters_ [protected] |
List of client's owning and waiting the token.
1.4.6-4