Base Framework
Public Member Functions | List of all members
ReferenceCountedObjectWrapper< TYPE > Class Template Reference

Reference counted object wrapper. More...

#include <base/mem/ReferenceCountedObjectWrapper.h>

Inherits ReferenceCountedObject.

Public Member Functions

 ReferenceCountedObjectWrapper (TYPE *value) noexcept
 
TYPE * operator-> () noexcept
 
TYPE & operator* ()
 
 operator TYPE * () const noexcept
 
 ~ReferenceCountedObjectWrapper ()
 
- Public Member Functions inherited from ReferenceCountedObject
 ReferenceCountedObject () noexcept
 
 ReferenceCountedObject (const ReferenceCountedObject &copy) noexcept
 
 ReferenceCountedObject (ReferenceCountedObject &&move) noexcept
 
ReferenceCountedObjectoperator= (const ReferenceCountedObject &copy) noexcept
 
ReferenceCountedObjectoperator= (ReferenceCountedObject &&move) noexcept
 
MemorySize getNumberOfReferences_INTERNAL () const noexcept
 
virtual bool useGarbageCollector () const noexcept
 
- Public Member Functions inherited from DynamicObject
 DynamicObject () noexcept
 
bool isValidObject () const noexcept
 
virtual ~DynamicObject () noexcept(false)
 
 _COM_AZURE_DEV__BASE__OVERRIDE_ALLOC ()
 

Detailed Description

template<class TYPE>
class ReferenceCountedObjectWrapper< TYPE >

Reference counted object wrapper.

This is a wrapper for a Reference Counted Object. Use this class if you need to reference count an object of a class that is not a subclass of ReferenceCountedObject. Allocate objects on the heap not the stack.

Version
1.0

Constructor & Destructor Documentation

◆ ReferenceCountedObjectWrapper()

template<class TYPE >
ReferenceCountedObjectWrapper< TYPE >::ReferenceCountedObjectWrapper ( TYPE *  value)
inlinenoexcept

Initializes the wrapper.

Parameters
valueThe object to be reference counted.

◆ ~ReferenceCountedObjectWrapper()

template<class TYPE >
ReferenceCountedObjectWrapper< TYPE >::~ReferenceCountedObjectWrapper ( )
inline

Destroys the wrapper.

Member Function Documentation

◆ operator TYPE *()

template<class TYPE >
ReferenceCountedObjectWrapper< TYPE >::operator TYPE * ( ) const
inlinenoexcept

Type cast to pointer.

◆ operator*()

template<class TYPE >
TYPE& ReferenceCountedObjectWrapper< TYPE >::operator* ( )
inline

Returns the object.

◆ operator->()

template<class TYPE >
TYPE* ReferenceCountedObjectWrapper< TYPE >::operator-> ( )
inlinenoexcept

Returns the object.