QoreReferenceCounter Class Reference

provides atomic reference counting to Qore objects More...

#include <QoreReferenceCounter.h>

Inheritance diagram for QoreReferenceCounter:

AbstractPrivateData AbstractQoreNode AbstractThreadResource QoreHTTPClient QoreProgram QoreSSLCertificate QoreSSLPrivateKey AbstractCallReferenceNode QoreHashNode QoreListNode QoreObject SimpleQoreNode

List of all members.

Public Member Functions

DLLEXPORT QoreReferenceCounter ()
 creates the reference counter object
DLLEXPORT ~QoreReferenceCounter ()
 destroys the reference counter object
DLLEXPORT int reference_count () const
 gets the reference count
DLLEXPORT bool is_unique () const
 returns true if the reference count is 1
DLLEXPORT void ROreference () const
 atomically increments the reference count
DLLEXPORT bool ROdereference () const
 atomically decrements the reference count

Protected Attributes

QoreThreadLock mRO
 pthread lock to ensure atomicity of updates for architectures where we don't have an atomic increment and decrement implementation


Detailed Description

provides atomic reference counting to Qore objects

Member Function Documentation

DLLEXPORT int QoreReferenceCounter::reference_count (  )  const [inline]

gets the reference count

Returns:
returns the current reference count

DLLEXPORT bool QoreReferenceCounter::is_unique (  )  const [inline]

returns true if the reference count is 1

Returns:
returns true if the reference count is 1

DLLEXPORT bool QoreReferenceCounter::ROdereference (  )  const

atomically decrements the reference count

returns true if the reference count is now zero

Returns:
true if the reference count is now zero

Referenced by AbstractPrivateData::deref().


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

Generated on Mon Oct 26 09:09:50 2009 for Qore Programming Language by  doxygen 1.5.6