UCommon
Public Member Functions
ucommon::SharedProtocol::Locking Class Reference

A kind of smart pointer object to support shared locking protocol. More...

#include <access.h>

Inherited by ucommon::autoshared< T > [private].

Public Member Functions

void exclusive (void)
 Call exclusive access on referenced objects protocol.
 
 Locking (SharedProtocol *object)
 Create an instance of an exclusive object reference. More...
 
 Locking (const Locking &copy)
 
 operator bool () const
 Test if the reference holds an active lock. More...
 
bool operator! () const
 Test if the reference holds an active lock. More...
 
Lockingoperator= (const Locking &copy)
 
void release (void)
 Release a held lock programmatically. More...
 
void share (void)
 Restore shared access on referenced objects protocol.
 
 ~Locking ()
 Destroy reference to shared locked object, release lock.
 

Detailed Description

A kind of smart pointer object to support shared locking protocol.

This object initiates a shared lock for the object being referenced when it is instantiated, and releases the shared lock when it is destroyed. You would pass the pointer an object that has the Shared as a base class.

Author
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 142 of file access.h.

Constructor & Destructor Documentation

◆ Locking()

ucommon::SharedProtocol::Locking::Locking ( SharedProtocol object)

Create an instance of an exclusive object reference.

Parameters
objectcontaining Exclusive base class protocol to lock.

Member Function Documentation

◆ operator bool()

ucommon::SharedProtocol::Locking::operator bool ( ) const
inline

Test if the reference holds an active lock.

Returns
true if locking an object.

Definition at line 177 of file access.h.

◆ operator!()

bool ucommon::SharedProtocol::Locking::operator! ( ) const
inline

Test if the reference holds an active lock.

Returns
true if is not locking an object.

Definition at line 169 of file access.h.

◆ release()

void ucommon::SharedProtocol::Locking::release ( void  )

Release a held lock programmatically.

This can be used to de-reference the object being share locked without having to wait for the destructor to be called when the shared_lock falls out of scope.


The documentation for this class was generated from the following file: