## NAME

ACE_Remote_RLock - Proxy for acquiring, renewing, and releasing a distributed readers lock.

## SYNOPSIS

    #include <ACE/Remote_Tokens.h>

    class ACE_Remote_RLock : public ACE_Remote_Token_Proxy
    {
      public:
        ACE_Remote_RLock (void);
        ACE_Remote_RLock (
            const ASYS_TCHAR *token_name,
            int ignore_deadlock = 0,
            int debug = 0
            );
        ACE_Remote_RLock (const ACE_Remote_RLock &mutex);
        void dump (void) const;
        virtual int type (void) const;
        virtual ACE_Token_Proxy *clone (void) const;
      protected:
        virtual ACE_Tokens *create_token (const ASYS_TCHAR *name);
    };

## DESCRIPTION

This is the remote equivalent to ACE_Local_RLock. Multiple readers can hold the lock simultaneously when no writers have the lock. Alternatively, when a writer holds the lock, no other participants (readers or writers) may hold the lock. ACE_Remote_RLock depends on the ACE Token Server for its distributed synchronization semantics.

## PUBLIC MEMBERS

    ACE_Remote_RLock (void);

    ACE_Remote_RLock (
        const ASYS_TCHAR *token_name,
        int ignore_deadlock = 0,
        int debug = 0
        );

    ACE_Remote_RLock (const ACE_Remote_RLock &mutex);

    void dump (void) const;

Dump the state of the class.

    virtual int type (void) const;

Returns ACE_RW_Token::RLOCK;

    virtual ACE_Token_Proxy *clone (void) const;

Return deep copy.

## PROTECTED MEMBERS

    virtual ACE_Tokens *create_token (const ASYS_TCHAR *name);

Make the correct type of ACE_Tokens. This is called by the Token Manager.

## AUTHOR

Douglas C. Schmidt (schmidt@cs.wustl.edu) and Tim Harrison (harrison@cs.wustl.edu)

## LIBRARY

ACE