Quick Links: |
#include <bslstl_sharedptrallocateoutofplacerep.h>
Public Member Functions | |
virtual void | disposeObject () |
virtual void | disposeRep () |
virtual void * | getDeleter (const std::type_info &type) |
virtual void * | originalPtr () const |
TYPE * | ptr () const |
Static Public Member Functions | |
static SharedPtrAllocateOutofplaceRep * | makeOutofplaceRep (TYPE *ptr, const DELETER &deleter, const ALLOCATOR &basicAllocator) |
This class provides a concrete implementation of the SharedPtrRep
protocol for out-of-place instances of the parameterized TYPE
. Upon destruction of this object, the parameterized DELETER
type is invoked on the pointer to the shared object.
See Component bslstl_sharedptrallocateoutofplacerep
static SharedPtrAllocateOutofplaceRep* bslstl::SharedPtrAllocateOutofplaceRep< TYPE, DELETER, ALLOCATOR >::makeOutofplaceRep | ( | TYPE * | ptr, | |
const DELETER & | deleter, | |||
const ALLOCATOR & | basicAllocator | |||
) | [static] |
Return the address of a newly created SharedPtrAllocateOutofplaceRep
object that manages the lifetime of the specified ptr
, uses the specified deleter
to destroy ptr
, and uses the specified basicAllocator
to supply memory. Note that the parameterized DELETER
type will be used to deallocate the memory pointed to by ptr
.
virtual void bslstl::SharedPtrAllocateOutofplaceRep< TYPE, DELETER, ALLOCATOR >::disposeObject | ( | ) | [virtual] |
Destroy the object referred to by this representation. This method is invoked by releaseRef
when the number of shared references reaches zero and should not be explicitly invoked otherwise.
virtual void bslstl::SharedPtrAllocateOutofplaceRep< TYPE, DELETER, ALLOCATOR >::disposeRep | ( | ) | [virtual] |
Destroy this representation object and deallocate the associated memory. This method is invoked by releaseRef
and releaseWeakRef
when the number of weak references and the number of shared references both reach zero and should not be explicitly invoked otherwise. The behavior is undefined unless disposeObject
has already been called for this representation. Note that this method effectively serves as the representation object's destructor.
virtual void* bslstl::SharedPtrAllocateOutofplaceRep< TYPE, DELETER, ALLOCATOR >::getDeleter | ( | const std::type_info & | type | ) | [virtual] |
Return a pointer to the deleter stored by the derived representation if the deleter has the same type as that described by the specified type
, and a null pointer otherwise.
virtual void* bslstl::SharedPtrAllocateOutofplaceRep< TYPE, DELETER, ALLOCATOR >::originalPtr | ( | ) | const [virtual] |
Return the (untyped) address of the modifiable shared object to which this object refers.
TYPE* bslstl::SharedPtrAllocateOutofplaceRep< TYPE, DELETER, ALLOCATOR >::ptr | ( | ) | const |
Return the address of the modifiable shared object to which this object refers.