Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
Gray::cPtrFacade< TYPE > Class Template Reference

#include <cPtrFacade.h>

Inheritance diagram for Gray::cPtrFacade< TYPE >:
Gray::cIUnkPtr< cProtocolStream > Gray::cIUnkPtr< ID3DXMesh > Gray::cIUnkPtr< GrayLib::IXObject > Gray::cIUnkPtr< GrayLib::ISQLBase > Gray::cLockerT< cThreadLockRW > Gray::cNewPtr< GrayMapData::CMapMovable > Gray::cNewPtr< Gray::cStreamInput > Gray::cNewPtr< JSFunctionSpec > Gray::cNewPtr< GrayLib::cColor888 > Gray::cNewPtr< GrayLib::cStreamCipherDec > Gray::cNewPtr< GrayLib::cCipherBase > Gray::cNewPtr< JSClass > Gray::cNewPtr< const GrayLib::cScriptableProp * > Gray::cNewPtr< GrayCodec::cImageJP2 > Gray::cNewPtr< GrayLib::cScriptContext > Gray::cNewPtr< cSSLTicketKeys > Gray::cNewPtr< SSL_CipherSuite_t > Gray::cNewPtr< GrayLib::cStreamCipherEnc > Gray::cNewPtr< GrayLib::cKeyRSASignOptions > Gray::cNewPtr< GrayLib::cHashBase > Gray::cNewPtr< JSPropertySpec > Gray::cRefPtr< GrayLib::cX509Crt > Gray::cRefPtr< cScriptableInterfaceDynamic > Gray::cRefPtr< cClientFTP > Gray::cRefPtr< GrayX::GrayXRoot > Gray::cRefPtr< cSyncOp > Gray::cRefPtr< cXListBox > Gray::cRefPtr< cFTPAccount > Gray::cRefPtr< cSQLDatabase > Gray::cRefPtr< GrayLib::cRIFFList > Gray::cRefPtr< cJSXObject > Gray::cRefPtr< cXStatic > Gray::cRefPtr< GrayGUI::cXStyleSheet > Gray::cRefPtr< cXDialog > Gray::cRefPtr< cJSXContext > Gray::cRefPtr< cXEditText > Gray::cRefPtr< cTimeScheduleSpecialEval > Gray::cRefPtr< cXWindow > Gray::cRefPtr< cNetServerPort > Gray::cRefPtr< GrayLib::cX509Crl > Gray::cRefPtr< cScriptSection > Gray::cRefPtr< cXDialogPlacementObj > Gray::cRefPtr< GrayFTP::cFTPGUI > Gray::cRefPtr< cXScrollBar > Gray::cRefPtr< cXButton > Gray::cRefPtr< cXObjPack > Gray::cRefPtr< cJobBase > Gray::cRefPtr< cThreadLockableRef > Gray::cRefPtr< cXComboBox > Gray::cRefPtr< cXStaticMulti > Gray::cRefPtr< cXObject > Gray::cRefPtr< cXTextureFile > Gray::cRefPtr< TYPE > Gray::cRefPtr< GrayLib::cXObjDef > Gray::cRefPtr< cStrPathNode > Gray::cRefPtr< GrayLib::cKeyBase > Gray::cRefPtr< cXMenu > Gray::cRefPtr< cNetAddrTracker > Gray::cRefPtr< cFontBase > Gray::cRefPtr< cMapPatch > Gray::cRefPtr< cXToolTip > Gray::cRefPtr< cFTPDataParams > Gray::cRefPtr< cSSLServerStream > Gray::cRefPtr< cAtomDef > Gray::cRefPtr< CMapMover > Gray::cRefPtr< cGrayManMaker > Gray::cRefPtr< cXObjDef > Gray::cRefPtr< cXDTBase > Gray::cNewPtr< TYPE >

Public Member Functions

 cPtrFacade (TYPE *p=nullptr) noexcept
 
 cPtrFacade (THIS_t &&ref) noexcept
 
bool isValidPtr () const noexcept
 
TYPE ** get_PPtr ()
 
TYPEget_Ptr () const noexcept
 
void put_Ptr (TYPE *p) noexcept
 
void ReleasePtr () noexcept
 
void AttachPtr (TYPE *p) noexcept
 
TYPEDetachPtr () noexcept
 
THIS_toperator= (TYPE *p) noexcept
 
THIS_toperator= (THIS_t &&ref) noexcept
 
 operator TYPE * () const noexcept
 
TYPEget_Ref () const
 
TYPEoperator* () const
 
TYPEoperator-> () const
 
bool operator! () const noexcept
 Comparison ops. More...
 
bool operator!= (TYPE *p2) const noexcept
 
bool operator== (TYPE *p2) const noexcept
 

Protected Attributes

TYPEm_p
 Pointer to some object of TYPE. More...
 

Detailed Description

template<class TYPE>
class Gray::cPtrFacade< TYPE >

a class that acts like (wraps) a pointer to TYPE. Not specific to TYPE=cRefBase. Base for: cExceptionHolder, cLockerT, cNewPtr, cRefPtr, cIUnkPtr, etc. TODO cPtrNotNull<> // a pointer that can never be nullptr. like gsl::not_null<T>

Constructor & Destructor Documentation

◆ cPtrFacade() [1/2]

template<class TYPE >
Gray::cPtrFacade< TYPE >::cPtrFacade ( TYPE p = nullptr)
inlinenoexcept

◆ cPtrFacade() [2/2]

template<class TYPE >
Gray::cPtrFacade< TYPE >::cPtrFacade ( THIS_t &&  ref)
inlinenoexcept

move constructor.

Member Function Documentation

◆ AttachPtr()

template<class TYPE >
void Gray::cPtrFacade< TYPE >::AttachPtr ( TYPE p)
inlinenoexcept

sets the pointer WITHOUT adding a ref (if overload applicable). like get_PPtr().

◆ DetachPtr()

template<class TYPE >
TYPE* Gray::cPtrFacade< TYPE >::DetachPtr ( )
inlinenoexcept

Do not decrement the reference count when this is destroyed. Pass the ref outside the smart pointer system. for use with COM interfaces. same as _WIN32 ATL cComPtr Detach()

◆ get_PPtr()

template<class TYPE >
TYPE** Gray::cPtrFacade< TYPE >::get_PPtr ( )
inline

assume this will be used to set the m_p value.

◆ get_Ptr()

template<class TYPE >
TYPE* Gray::cPtrFacade< TYPE >::get_Ptr ( ) const
inlinenoexcept

◆ get_Ref()

template<class TYPE >
TYPE& Gray::cPtrFacade< TYPE >::get_Ref ( ) const
inline

◆ isValidPtr()

template<class TYPE >
bool Gray::cPtrFacade< TYPE >::isValidPtr ( ) const
inlinenoexcept

Not nullptr?

◆ operator TYPE *()

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

Accessor ops.

Note
These are dangerous ! They don't increment the reference count for use !!!

◆ operator!()

template<class TYPE >
bool Gray::cPtrFacade< TYPE >::operator! ( ) const
inlinenoexcept

Comparison ops.

◆ operator!=()

template<class TYPE >
bool Gray::cPtrFacade< TYPE >::operator!= ( TYPE p2) const
inlinenoexcept

◆ operator*()

template<class TYPE >
TYPE& Gray::cPtrFacade< TYPE >::operator* ( ) const
inline

◆ operator->()

template<class TYPE >
TYPE* Gray::cPtrFacade< TYPE >::operator-> ( ) const
inline

◆ operator=() [1/2]

template<class TYPE >
THIS_t& Gray::cPtrFacade< TYPE >::operator= ( THIS_t &&  ref)
inlinenoexcept

move assignment operator

◆ operator=() [2/2]

template<class TYPE >
THIS_t& Gray::cPtrFacade< TYPE >::operator= ( TYPE p)
inlinenoexcept

assignment operator

◆ operator==()

template<class TYPE >
bool Gray::cPtrFacade< TYPE >::operator== ( TYPE p2) const
inlinenoexcept

◆ put_Ptr()

template<class TYPE >
void Gray::cPtrFacade< TYPE >::put_Ptr ( TYPE p)
inlinenoexcept

override this to increment a ref count. similar to AttachPtr() but can add a ref.

◆ ReleasePtr()

template<class TYPE >
void Gray::cPtrFacade< TYPE >::ReleasePtr ( )
inlinenoexcept

just set this to nullptr. override this to decrement a ref count or free memory.

Member Data Documentation

◆ m_p

template<class TYPE >
TYPE* Gray::cPtrFacade< TYPE >::m_p
protected

Pointer to some object of TYPE.


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