SourcePro® API Reference Guide

 
Loading...
Searching...
No Matches
RWTUnlockGuard< Resource > Class Template Reference

Guard class that releases its resource upon creation and acquires it upon destruction. More...

#include <rw/sync/RWTUnlockGuard.h>

Inheritance diagram for RWTUnlockGuard< Resource >:
RWTGuardBase< Resource >

Public Member Functions

 RWTUnlockGuard (Resource &resource)
 
 ~RWTUnlockGuard (void)
 
- Public Member Functions inherited from RWTGuardBase< Resource >
 ~RWTGuardBase (void)
 
void acquire (void)
 
bool isAcquired (void) const
 
void release (void)
 

Private Member Functions

 RWTUnlockGuard (const RWTUnlockGuard< Resource > &second)
 
RWTUnlockGuard< Resource > & operator= (const RWTUnlockGuard< Resource > &second)
 

Additional Inherited Members

- Protected Member Functions inherited from RWTGuardBase< Resource >
 RWTGuardBase (Resource &resource)
 
 RWTGuardBase (Resource &resource, bool acquired)
 
Resource & resource (void) const
 

Detailed Description

template<class Resource>
class RWTUnlockGuard< Resource >

RWTUnlockGuard is a guard class that releases its resource upon creation and acquires it upon destruction. Guard objects work in conjunction with block statements to establish an appropriate state upon creation, maintain that state for the duration of the block, and restore the original state upon destruction. For example, a guard may release a mutex when created and reacquire it when destructed. The class used as the actual template parameter for Resource must be one that provides acquire() and release() methods, such as the synchronization classes provided in this module.

Example
#include <rw/sync/RWMutexLock.h>
#include <rw/sync/RWTUnlockGuard.h>
// ...
void foo() {
mutex.acquire();
// ... critical code
// temporarily release mutex for the duration of block:
{
RWTUnlockGuard<RWMutexLock> lock(mutex); // releases mutex
// ... anti-critical section
// Mutex will be reacquired in RWTUnlockGuard destructor.
}
// ... more critical code
mutex.release();
}
Implements a mutex, or mutual exclusion lock.
Definition RWMutexLock.h:231
void acquire()
void release()
Guard class that releases its resource upon creation and acquires it upon destruction.
Definition RWTUnlockGuard.h:70
See also
RWTLockGuard

Constructor & Destructor Documentation

◆ RWTUnlockGuard() [1/2]

template<class Resource >
RWTUnlockGuard< Resource >::RWTUnlockGuard ( Resource & resource)
inline

Releases the resource.

◆ ~RWTUnlockGuard()

template<class Resource >
RWTUnlockGuard< Resource >::~RWTUnlockGuard ( void )
inline

Reacquires the resource.

◆ RWTUnlockGuard() [2/2]

template<class Resource >
RWTUnlockGuard< Resource >::RWTUnlockGuard ( const RWTUnlockGuard< Resource > & second)
private

Copy construction prohibited.

Member Function Documentation

◆ operator=()

template<class Resource >
RWTUnlockGuard< Resource > & RWTUnlockGuard< Resource >::operator= ( const RWTUnlockGuard< Resource > & second)
private

Assignment prohibited.

Copyright © 2024 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.