SharedObjectPool_Rep [constructor] | Construct a new rep object that, upon release, will invoke the specified objectResetter and return itself to the specified pool; then invoke objectCreator to construct an object of TYPE embedded within the new rep object. Use the specified basicAllocator to supply memory. If basicAllocator is 0, the currently installed default allocator is used. |
~SharedObjectPool_Rep [destructor] [virtual] | Destroy this representation object and the embedded instance of TYPE. |
acquireRef | Atomically acquire a shared reference to the shared object referred to by this representation. The behavior is undefined unless 0 < numReferences(). |
acquireWeakRef | Atomically acquire a weak reference to the shared object referred to by this representation. The behavior is undefined unless 0 < numWeakReferences() || 0 < numReferences(). |
disposeObject [virtual] | Release the object being managed by this representation. This method is invoked when the number of strong references reaches zero. Note that if there are any weak references to the shared object then this function does nothing, including not destroying the object or returning it to the pool. |
disposeRep [virtual] | Release this representation object. This method is invoked when the number of weak references and the number of strong references reach zero. This virtual override will return the object, and this representation, to the associated pool. |
getDeleter [virtual] | Return NULL. Shared object pools strictly control the delete policy for their objects, and do not expose it to end users. |
hasUniqueOwner | Return true if there is only one shared reference and no weak references to the object referred to by this representation, and false otherwise. |
incrementRefs | Atomically increment the number of shared references to the shared object referred to by this representation by the optionally specified incrementAmount. The behavior is undefined unless 0 < incrementAmount and 0 < numReferences(). |
numReferences | Return a "snapshot" of the current number of shared references to the shared object referred to by this representation object. |
numWeakReferences | Return a "snapshot" of the current number of weak references to the shared object referred to by this representation object. |
originalPtr [virtual] | Return (untyped) address of the object managed by this representation. This virtual override effectively returns "(void*)ptr()". |
ptr | Return a pointer to the in-place object. |
releaseRef | Atomically release a shared reference to the shared object referred to by this representation, disposing of the shared object if all the shared references to that object are released, and disposing of this representation if all (shared and weak) references to that object are released. The behavior is undefined unless 0 < numReferences(). |
releaseWeakRef | Atomically release a weak reference to the shared object referred to by this representation, disposing of this representation if all (shared and weak) references to the shared object are released. The behavior is undefined unless 0 < numWeakReferences(). |
reset | Invoke the object resetter specified at construction on the associated object. |
resetCountsRaw | Reset the number of shared references and the number of weak references stored by this representation to the specified numSharedReferences and numWeakReferences respectively. This function is not thread-safe and users must ensure that they serialize access to the SharedPtrRep object when calling this function. Note that this function updates the counts, but does not dispose of the representation or the object irrespective of the values of numSharedReferences and numWeakReferences. |
tryAcquireRef | Atomically acquire a shared reference to the shared object referred to by this representation, if the number of shared references is greater than 0, and do nothing otherwise. Return true if the acquire succeeds, and false otherwise. The behavior is undefined unless 0 < numWeakReferences() || 0 < numReferences(). |