ZFFramework
 
Loading...
Searching...
No Matches
ZFCorePointerT< T_Pointer, T_ZFCorePointerType > Class Template Reference

pointer container with reference count logic More...

#include <ZFCorePointer.h>

Inheritance diagram for ZFCorePointerT< T_Pointer, T_ZFCorePointerType >:
ZFCorePointer

Public Member Functions

void pointerValue (T_Pointer const &value)
 set the pointer value
 
T_Pointer const & pointerValue (void) const
 get the pointer value
 
virtual void objectInfoOfContentT (zfstring &ret) const
 see objectInfoOfContent
 
virtual void objectInfoOfContentT (zfstring &ret, typename ZFCoreInfoGetter< T_Pointer >::InfoGetter infoGetter) const
 see objectInfoOfContent
 
virtual const ZFCorePointerrefNew (void) const
 create a new reference to the smart pointer
 
virtual const void * pointerValueAccess (void) const
 get the internal pointer
 
virtual void * pointerValueAccessNonConst (void) const
 get the internal pointer
 
virtual zfindex objectRetainCount (void) const
 get current retain count
 
- Public Member Functions inherited from ZFCorePointer
virtual void objectInfoT (zfstring &ret) const
 see objectInfo
 
virtual zfstring objectInfo (void) const
 return object info
 
virtual zfstring objectInfoOfContent (void) const
 get content info or ZFTOKEN_zftToStringNotAvailable if not available
 
virtual ZFCompareResult objectCompare (const ZFCorePointer &another) const
 compare by internal pointer value
 
virtual void refDelete (void) const
 see refNew
 
template<typename T_PointerDesired>
T_PointerDesired pointerValueT (void) const
 util method to get and cast to desired type
 

Detailed Description

template<typename T_Pointer, typename T_ZFCorePointerType>
class ZFCorePointerT< T_Pointer, T_ZFCorePointerType >

pointer container with reference count logic

usage:

{
// create
YourClass *obj = zfnew(YourClass);
// get
container->pointerValue()->funcInYourClass();
// or cast it
((YourClass *)container)->funcInYourClass();
// or implicit
container->funcInYourClass();
// or as r-value
YourClass *p = container;
// or set as l-value
container = p;
// or copy it
another0 = container;
} // obj would be automatically deleted after this block,
// i.e. all smart pointer container were deleted
#define zfnew(Type,...)
same as new defined for future use
Definition ZFCoreTypeDef_ClassType.h:89
see ZFCorePointerT
Definition ZFCorePointer.h:420

you may store any types in ZFCorePointerT, if you are able to supply a custom delete callback, to declare your own type, see ZFCOREPOINTER_DECLARE

Member Function Documentation

◆ objectInfoOfContentT()

template<typename T_Pointer, typename T_ZFCorePointerType>
virtual void ZFCorePointerT< T_Pointer, T_ZFCorePointerType >::objectInfoOfContentT ( zfstring & ret) const
inlinevirtual

◆ refNew()

template<typename T_Pointer, typename T_ZFCorePointerType>
virtual const ZFCorePointer * ZFCorePointerT< T_Pointer, T_ZFCorePointerType >::refNew ( void ) const
inlinevirtual

create a new reference to the smart pointer

increase object reference and return a new smart pointer, old one should be deleted manually
after the newly created instance and the old one both been deleted, the object would be deleted finally

Note
should be (and recommended to be) paired with refDelete instead of zfdelete, if you override default zfnew and zfdelete

Implements ZFCorePointer.

◆ pointerValueAccess()

template<typename T_Pointer, typename T_ZFCorePointerType>
virtual const void * ZFCorePointerT< T_Pointer, T_ZFCorePointerType >::pointerValueAccess ( void ) const
inlinevirtual

get the internal pointer

Implements ZFCorePointer.

◆ pointerValueAccessNonConst()

template<typename T_Pointer, typename T_ZFCorePointerType>
virtual void * ZFCorePointerT< T_Pointer, T_ZFCorePointerType >::pointerValueAccessNonConst ( void ) const
inlinevirtual

get the internal pointer

Implements ZFCorePointer.

◆ objectRetainCount()

template<typename T_Pointer, typename T_ZFCorePointerType>
virtual zfindex ZFCorePointerT< T_Pointer, T_ZFCorePointerType >::objectRetainCount ( void ) const
inlinevirtual

get current retain count

Implements ZFCorePointer.


The documentation for this class was generated from the following file: