![]() |
Qore Programming Language - C/C++ Library 2.1.1
|
base class for saving data using Qore's thread resource management system More...
#include <AbstractThreadResource.h>
Public Member Functions | |
| DLLEXPORT | AbstractThreadResource () |
| the constructor is currently empty | |
| virtual DLLEXPORT | ~AbstractThreadResource () |
| virtual destructor | |
| virtual void | cleanup (ExceptionSink *xsink)=0 |
| this function is called when a thread terminates and a thread resource is still allocated to the thread | |
| virtual DLLLOCAL QoreProgram * | getProgram () |
| this function is called when clearing thread resources for a particular Program when being destroyed | |
Public Member Functions inherited from AbstractPrivateData | |
| virtual DLLLOCAL void | deref () |
| decrements the reference count of the object without the possibility of throwing a Qore-language exception | |
| virtual DLLLOCAL void | deref (ExceptionSink *xsink) |
| decrements the reference count of the object | |
| DLLLOCAL void | ref () const |
| increments the reference count of the object | |
Public Member Functions inherited from QoreReferenceCounter | |
| DLLEXPORT | QoreReferenceCounter () |
| Creates the reference counter object. | |
| DLLEXPORT | QoreReferenceCounter (const QoreReferenceCounter &old) |
| Creates a new object with a reference count of 1. | |
| DLLEXPORT | ~QoreReferenceCounter () |
| destroys the reference counter object | |
| DLLEXPORT bool | is_unique () const |
| Returns true if the reference count is 1. | |
| DLLEXPORT bool | optRef () |
| Make a strong reference only if the object is valid. | |
| DLLEXPORT int | reference_count () const |
| Gets the reference count. | |
| DLLEXPORT bool | ROdereference () const |
| Atomically decrements the reference count. | |
| DLLEXPORT void | ROreference () const |
| Atomically increments the reference count. | |
Additional Inherited Members | |
Protected Member Functions inherited from AbstractPrivateData | |
| virtual DLLLOCAL | ~AbstractPrivateData () |
| as these objects are reference counted, the destructor should be called only when the reference count = 0 and not manually | |
Protected Attributes inherited from QoreReferenceCounter | |
base class for saving data using Qore's thread resource management system
Thread resources are resources that are tied to a particular thread. Qore provides the ability to call the object's "cleanup()" function if the resource is still allocated to the thread when the thread terminates. For example, the Datasource transaction lock is implemented as a thread resource. If the used does not commit or rollback an open transaction before the thread terminates, ManagedDatasource::cleanup() is run, which will throw an exception, rollback the transaction, and release the transaction lock. When a thread commits or rolls back a transaction, the thread resource is removed. Use the set_thread_resource() to set and remove_thread_resource() to remove thread resources.