All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
AutoVLock Class Reference

AutoVLock is a container for safely managing global variable and object lock handovers, required for functions accessing global variables and object data where locking is necessary. More...

`#include <AutoVLock.h>`

Collaboration diagram for AutoVLock:
[legend]

## Public Member Functions

DLLEXPORT | AutoVLock (ExceptionSink *n_xsink)
| creates an empty lock container More...
DLLEXPORT | ~AutoVLock ()
| releases all locks held and destroys the container
DLLLOCAL void | addMemberNotification (QoreObject *o, const char *member)
| adds an object member notification entry, internal-only More...
DLLLOCAL void | clear ()
| leaves the lock locked and the object referenced and clears the object and lock pointers
DLLEXPORT void | del ()
| manually releases the lock currently held
DLLLOCAL QoreObject * | getObject () const
| gets the current object
DLLLOCAL QoreVarRWLock * | getRWL () const
| gets the current read-write lock
DLLEXPORT | operator bool () const
| returns true if managing a lock, false if not (unlocked)
DLLLOCAL void | set (QoreVarRWLock *n_rwl)
| sets the current lock
DLLLOCAL void | set (QoreObject *n_o, QoreVarRWLock *n_rwl)
| sets the current object (for dereference) and lock

## Detailed Description

AutoVLock is a container for safely managing global variable and object lock handovers, required for functions accessing global variables and object data where locking is necessary.

This object is used for lock handover management and automatically releasing the last lock.

## Constructor & Destructor Documentation

DLLEXPORT AutoVLock::AutoVLock | ( | ExceptionSink * | n_xsink | ) |

creates an empty lock container

Parameters

  n_xsink | pointer to ExceptionSink object for use with object notifications

## Member Function Documentation

DLLLOCAL void AutoVLock::addMemberNotification | ( | QoreObject * | o,
|  | const char * | member
| ) |  |

adds an object member notification entry, internal-only

Parameters

  o | the object to add
  member | the member that was changed (must be in QCS_DEFAULT encoding)

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

- include/qore/AutoVLock.h (6de6cc3b438610bf03b2bec44a3d7c61f90e3165)