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

#include <cArray.h>

Inheritance diagram for Gray::cArrayFacade< TYPE, TYPE_ARG >:
Gray::cArrayTyped< TYPE, TYPE * > Gray::CArray< TYPE, ARG_TYPE > Gray::CObject Gray::cArrayIUnk< Gray::cLogAppender > Gray::cArrayPtr< Gray::cUnitTestRegister > Gray::cArrayPtr< cSpatialObject > Gray::cArrayPtr< GrayLib::IProtocolFactory > Gray::cArrayPtr< GrayLib::cXObjPackFactory > Gray::cArrayPtr< GrayLib::IImageCreator > Gray::cArrayPtr< Gray::CObject > Gray::cArrayPtr< GrayLib::IThreadCloseHandler > Gray::cArrayPtr< Gray::cSingletonRegister > Gray::cArrayPtr< GrayLib::cScriptableInterfaceDef > Gray::cArrayPtr< GrayLib::cXObjTypeDef > Gray::cArrayPtr< GrayLib::cXObject > Gray::cArrayPtr< const GrayLib::cECPGroupDef > Gray::cArrayPtr< IQuadObject > Gray::cArrayRef< GrayLib::cNetServerThread > Gray::cArrayRef< GrayMapData::CMultiDefElement > Gray::cArrayRef< GrayLib::cSQLDatabase > Gray::cArrayRef< GrayLib::cResDlgTemplateItem > Gray::cArrayRef< GrayLib::cVoIPUser > Gray::cArrayRef< Gray3D::cModel3DSMaterialInfo > Gray::cArrayRef< GrayLib::cXObjPack > Gray::cArrayRef< cXDlgChatWindow > Gray::cArrayRef< Gray3D::cModelMeshCont > Gray::cArrayRef< GrayLib::cResDlgInitItem > Gray::cArrayRef< GrayLib::cAVFrame > Gray::cArrayRef< Gray3D::cModelFrame > Gray::cArrayRef< GrayLib::cRIFFBlock > Gray::cArrayRef< T > Gray::cArrayRef< GrayGUI::cXStatic > Gray::cArrayRef< GrayGUI::cXStaticTextBlock > Gray::cArrayRef< Gray3D::cModel3DSObject > Gray::cArrayRef< GrayLib::cXObjModule > Gray::cArrayRef< GrayFTP::cClientFTPData > Gray::cArrayRef< GrayLib::cTimeScheduleElem > Gray::cArrayRef< GrayLib::cHttpController > Gray::cArrayRef< Gray::cIniSectionEntry > Gray::cArrayRef< GrayLib::cXObjDef > Gray::cArrayRef< GrayJS::cJSXClass > Gray::cArrayRef< GrayFTP::cClientFTP > Gray::cArrayRef< GrayLib::cScriptablePropDynamic > Gray::cArrayRef< GrayGUI::cXWindow >

Public Types

typedef cArrayTyped< TYPE, TYPE_ARG > SUPER_t
 
typedef cArrayFacade< TYPE, TYPE_ARG > THIS_t
 
typedef SUPER_t::ELEM_t ELEM_t
 
typedef SUPER_t::REF_t REF_t
 
- Public Types inherited from Gray::cArrayTyped< TYPE, TYPE * >
typedef CArray< TYPE, TYPE * > SUPER_t
 
typedef cArrayTyped< TYPE, TYPE * > THIS_t
 
typedef ITERATE_t iterator
 
typedef ITERATE_t const_iterator
 
typedef TYPE ELEM_t
 What type is stored. More...
 
typedef TYPEREF_t
 How to refer to this? value or ref or pointer? More...
 

Public Member Functions

virtual ~cArrayFacade ()
 
virtual COMPARE_t CompareData (REF_t pData1, REF_t pData2) const noexcept override
 
REF_t GetAt (ITERATE_t index) const
 
REF_t GetAtCheck (ITERATE_t index) const
 
TYPE PopHead ()
 
TYPE PopTail ()
 
- Public Member Functions inherited from Gray::cArrayTyped< TYPE, TYPE * >
void QSort ()
 
 cArrayTyped () noexcept
 
 cArrayTyped (const THIS_t &rArray)
 
 cArrayTyped (ITERATE_t iSize)
 
virtual ~cArrayTyped ()
 
bool isValidCheck () const noexcept
 < memory allocation and structure definitions are valid. More...
 
bool IsValidIndex (ITERATE_t i) const noexcept
 
ITERATE_t ClampValidIndex (ITERATE_t i) const noexcept
 
size_t GetHeapStats (OUT ITERATE_t &iAllocCount) const noexcept
 
void AssertValidIndex (ITERATE_t nIndex) const
 
const TYPEGetAtSecure (ITERATE_t nIndex) const
 
TYPEElementAtSecure (ITERATE_t nIndex)
 
REF_t ConstElementAt (ITERATE_t nIndex) const
 
TYPEoperator[] (ITERATE_t nIndex)
 
const TYPEoperator[] (ITERATE_t nIndex) const
 
TYPEHead ()
 
TYPETail ()
 
TYPEElementAtHead ()
 
TYPEElementAtTail ()
 
REF_t ConstHead () const
 
REF_t ConstTail () const
 
REF_t GetAtTail ()
 
void UnLinkIndex (ITERATE_t nIndex)
 
void Swap (ITERATE_t i, ITERATE_t j)
 
void SetCopy (const cArrayTyped< TYPE, TYPE * > &aValues)
 
const cArrayTyped< TYPE, TYPE * > & operator= (const cArrayTyped< TYPE, TYPE * > &aValues)
 
ITERATE_t FindIFor (TYPE * arg) const
 
bool HasArg (TYPE * arg) const
 
void RemoveLast ()
 
ELEM_t PopHead ()
 
ELEM_t PopTail ()
 
bool RemoveArg (TYPE * arg)
 
void UnLinkArg (TYPE * arg)
 
ITERATE_t AddTail (TYPE * newElement)
 
ITERATE_t PushTail (TYPE * newElement)
 
void AddHead (TYPE * newElement)
 
TYPEget_DataWork () const
 
void AddArray (const SUPER_t &src)
 
bool IsEqualArray (const SUPER_t &aValues) const
 
bool isArraySorted () const
 
bool isArraySortedND () const
 
- Public Member Functions inherited from Gray::CArray< TYPE, ARG_TYPE >
 CArray () noexcept
 
 CArray (THIS_t &&ref) noexcept
 
virtual ~CArray ()
 
bool IsValidMallocSize () const noexcept
 
ITERATE_t GetSize () const noexcept
 
ITERATE_t GetUpperBound () const noexcept
 
bool IsEmpty () const noexcept
 
void SetSize (ITERATE_t nNewSize)
 
ITERATE_t GetMallocSize () const noexcept
 
void RemoveAll ()
 Clean up. More...
 
const TYPEGetAt (ITERATE_t nIndex) const
 
TYPEElementAt (ITERATE_t nIndex)
 
void SetAt (ITERATE_t nIndex, ARG_TYPE newElement)
 
const TYPEGetData () const
 
TYPEGetData ()
 
void SetDataArrayPtr (TYPE *pData, ITERATE_t nSize)
 
void SetAtGrow (ITERATE_t nIndex, ARG_TYPE newElement)
 
ITERATE_t Add (ARG_TYPE newElement)
 
void Copy (const CArray &src)
 
TYPEoperator[] (ITERATE_t nIndex)
 
const TYPEoperator[] (ITERATE_t nIndex) const
 
void InsertAt (ITERATE_t nIndex, ARG_TYPE newElement)
 
void RemoveAt (ITERATE_t nIndex)
 
void RemoveAt (ITERATE_t nIndex, ITERATE_t iQty)
 
void MoveElement (ITERATE_t iFrom, ITERATE_t iTo)
 
- Public Member Functions inherited from Gray::CObject
virtual ~CObject ()
 
virtual void AssertValid () const
 < memory allocation and structure definitions are valid. More...
 
virtual void Serialize (cArchive &a)
 

Additional Inherited Members

- Protected Member Functions inherited from Gray::cArrayTyped< TYPE, TYPE * >
virtual COMPARE_t CompareData (REF_t Data1, REF_t Data2) const noexcept
 
ITERATE_t QSortPartition (ITERATE_t iLeft, ITERATE_t iRight)
 
void QSort (ITERATE_t iLeft, ITERATE_t iRight)
 
- Protected Member Functions inherited from Gray::CArray< TYPE, ARG_TYPE >
bool IsValidIndex (ITERATE_t i) const noexcept
 
- Protected Attributes inherited from Gray::CArray< TYPE, ARG_TYPE >
TYPEm_pData
 the actual array of data More...
 
ITERATE_t m_nSize
 Number of elements (upperBound - 1) More...
 

Detailed Description

template<class TYPE, class TYPE_ARG = TYPE*>
class Gray::cArrayFacade< TYPE, TYPE_ARG >

An array of some type of pointer using cPtrFacade. Allow dupes. base for cArrayPtr, cArryNew, cArrayIUnk and cArrayRef

Member Typedef Documentation

◆ ELEM_t

template<class TYPE , class TYPE_ARG = TYPE*>
typedef SUPER_t::ELEM_t Gray::cArrayFacade< TYPE, TYPE_ARG >::ELEM_t

◆ REF_t

template<class TYPE , class TYPE_ARG = TYPE*>
typedef SUPER_t::REF_t Gray::cArrayFacade< TYPE, TYPE_ARG >::REF_t

◆ SUPER_t

template<class TYPE , class TYPE_ARG = TYPE*>
typedef cArrayTyped<TYPE, TYPE_ARG> Gray::cArrayFacade< TYPE, TYPE_ARG >::SUPER_t

◆ THIS_t

template<class TYPE , class TYPE_ARG = TYPE*>
typedef cArrayFacade<TYPE, TYPE_ARG> Gray::cArrayFacade< TYPE, TYPE_ARG >::THIS_t

Constructor & Destructor Documentation

◆ ~cArrayFacade()

template<class TYPE , class TYPE_ARG = TYPE*>
virtual Gray::cArrayFacade< TYPE, TYPE_ARG >::~cArrayFacade ( )
inlinevirtual

Make sure the virtuals get called correctly.

Member Function Documentation

◆ CompareData()

template<class TYPE , class TYPE_ARG = TYPE*>
virtual COMPARE_t Gray::cArrayFacade< TYPE, TYPE_ARG >::CompareData ( REF_t  pData1,
REF_t  pData2 
) const
inlineoverridevirtualnoexcept

Compare a data record to another data record. Use cValT::Compare()??

◆ GetAt()

template<class TYPE , class TYPE_ARG = TYPE*>
REF_t Gray::cArrayFacade< TYPE, TYPE_ARG >::GetAt ( ITERATE_t  index) const
inline

◆ GetAtCheck()

template<class TYPE , class TYPE_ARG = TYPE*>
REF_t Gray::cArrayFacade< TYPE, TYPE_ARG >::GetAtCheck ( ITERATE_t  index) const
inline

Just return nullptr if index out of bounds. Safe. GetAtSafe()

◆ PopHead()

template<class TYPE , class TYPE_ARG = TYPE*>
TYPE Gray::cArrayFacade< TYPE, TYPE_ARG >::PopHead ( )
inline

◆ PopTail()

template<class TYPE , class TYPE_ARG = TYPE*>
TYPE Gray::cArrayFacade< TYPE, TYPE_ARG >::PopTail ( )
inline

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