#include <ace/Token_Invariants.h>
class ACE_Token_Invariant_Manager : public ACE_Cleanup {
public:static ACE_Token_Invariant_Manager *instance (void);int acquired (const ACE_Token_Proxy *proxy);void releasing (const ACE_Token_Proxy *proxy);int mutex_acquired (const char *token_name);void mutex_releasing (const char *token_name);int reader_acquired (const char *token_name);int writer_acquired (const char *token_name);void rwlock_releasing (const char *token_name);void dump (void) const;ACE_Token_Invariant_Manager (void);virtual ~ACE_Token_Invariant_Manager (void);protected:int get_mutex ( const char *token_name, ACE_Mutex_Invariants *&inv );int get_rwlock ( const char *token_name, ACE_RWLock_Invariants *&inv );ACE_TOKEN_CONST::MUTEX lock_;typedef ACE_Token_Name TOKEN_NAME;typedef ACE_Map_Manager<TOKEN_NAME, ACE_Mutex_Invariants *, ACE_Null_Mutex> MUTEX_COLLECTION; typedef ACE_Map_Iterator<TOKEN_NAME, ACE_Mutex_Invariants *, ACE_Null_Mutex> MUTEX_COLLECTION_ITERATOR; typedef ACE_Map_Entry<TOKEN_NAME, ACE_Mutex_Invariants *> MUTEX_COLLECTION_ENTRY;MUTEX_COLLECTION mutex_collection_;typedef ACE_Map_Manager<TOKEN_NAME, ACE_RWLock_Invariants *, ACE_Null_Mutex> RWLOCK_COLLECTION; typedef ACE_Map_Iterator<TOKEN_NAME, ACE_RWLock_Invariants *, ACE_Null_Mutex> RWLOCK_COLLECTION_ITERATOR; typedef ACE_Map_Entry<TOKEN_NAME, ACE_RWLock_Invariants *> RWLOCK_COLLECTION_ENTRY;RWLOCK_COLLECTION rwlock_collection_;static ACE_Token_Invariant_Manager *instance_;};
int acquired (const ACE_Token_Proxy *proxy);
void releasing (const ACE_Token_Proxy *proxy);
int mutex_acquired (const char *token_name);
void mutex_releasing (const char *token_name);
int reader_acquired (const char *token_name);
int writer_acquired (const char *token_name);
void rwlock_releasing (const char *token_name);
void dump (void) const;
ACE_Token_Invariant_Manager (void);
virtual ~ACE_Token_Invariant_Manager (void);