UCommon
|
The shared pointer is used to manage a singleton instance of shared object. More...
#include <thread.h>
Protected Member Functions | |
void | replace (SharedObject *object) |
Replace existing singleton instance with new one. | |
SharedObject * | share (void) |
Acquire a shared reference to the singleton object. | |
SharedPointer () | |
Created shared locking for pointer. | |
~SharedPointer () | |
Destroy lock and release any blocked threads. | |
Friends | |
class | shared_release |
The shared pointer is used to manage a singleton instance of shared object.
This class is used to support the templated shared_pointer class and the shared_release class, and is not meant to be used directly or as a base for anything else. One or more threads may aquire a shared lock to the singleton object through this pointer, and it can only be replaced with a new singleton instance when no threads reference it. The conditional lock is used to manage shared access for use and exclusive access when modified.
ucc::SharedPointer::SharedPointer | ( | ) | [protected] |
Created shared locking for pointer.
Must be assigned by replace.
void ucc::SharedPointer::replace | ( | SharedObject * | object | ) | [protected] |
Replace existing singleton instance with new one.
This happens during exclusive locking, and the commit method of the object will be called.
object | being set. |
SharedObject* ucc::SharedPointer::share | ( | void | ) | [protected] |
Acquire a shared reference to the singleton object.
This is a form of shared access lock. Derived classes and templates access "release" when the shared pointer is no longer needed.