## NAME

ACE_Read_Guard - This class is similar to class `ACE_Guard`, though it acquires/releases a read lock automatically (naturally, the `ACE_LOCK` it is instantiated with must support the appropriate API).

## SYNOPSIS

    #include <ace/Synch_T.h>

    template<class ACE_LOCK>
    class ACE_Read_Guard : public ACE_Guard<ACE_LOCK>
    {
      public:
        inline ACE_Read_Guard (ACE_LOCK& m): ACE_Guard<ACE_LOCK> (&m);
        inline ACE_Read_Guard (
            ACE_LOCK &m,
            int block): ACE_Guard<ACE_LOCK> (&m
            );
        inline int acquire_read (void);
        inline int acquire (void);
        inline int tryacquire_read (void);
        inline int tryacquire (void);
        void dump (void) const;
    };

## Initialization methods.

    inline ACE_Read_Guard (ACE_LOCK& m): ACE_Guard<ACE_LOCK> (&m);

    inline ACE_Read_Guard (
        ACE_LOCK &m,
        int block): ACE_Guard<ACE_LOCK> (&m
        );

Implicitly and automatically acquire (or try to acquire) a read lock.

## Lock accessors.

    inline int acquire_read (void);

Explicitly acquire the read lock.

    inline int acquire (void);

Explicitly acquire the read lock.

    inline int tryacquire_read (void);

Conditionally acquire the read lock (i.e., won't block).

    inline int tryacquire (void);

Conditionally acquire the read lock (i.e., won't block).

## Utility methods.

    void dump (void) const;

Dump the state of an object.

ACE_ALLOC_HOOK_DECLARE; Declare the dynamic allocation hooks.

## AUTHOR

Doug Schmidt

## LIBRARY

ace