Qore Programming Language
0.8.7
|
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>
Public Member Functions | |
DLLEXPORT | AutoVLock (ExceptionSink *n_xsink) |
creates an empty lock container | |
DLLEXPORT | ~AutoVLock () |
releases all locks held and destroys the container | |
DLLEXPORT | operator bool () const |
returns true if managing a lock, false if not (unlocked) | |
DLLEXPORT void | del () |
manually releases the lock currently held | |
DLLLOCAL void | set (QoreThreadLock *n_m) |
sets the current lock | |
DLLLOCAL void | set (QoreObject *n_o, QoreThreadLock *n_m) |
sets the current object (for dereference) and lock | |
DLLLOCAL QoreThreadLock * | get () const |
gets the current lock | |
DLLLOCAL QoreObject * | getObject () const |
gets the current object | |
DLLLOCAL void | clear () |
leaves the lock locked and the object referenced and clears the object and lock pointers | |
DLLLOCAL void | addMemberNotification (QoreObject *o, const char *member) |
adds an object member notification entry, internal-only | |
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.
DLLEXPORT AutoVLock::AutoVLock | ( | ExceptionSink * | n_xsink | ) |
creates an empty lock container
n_xsink | pointer to ExceptionSink object for use with object notifications |
DLLLOCAL void AutoVLock::addMemberNotification | ( | QoreObject * | o, |
const char * | member | ||
) |
adds an object member notification entry, internal-only
o | the object to add |
member | the member that was changed (must be in QCS_DEFAULT encoding) |