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

#include <cArraySortRef.h>

Inheritance diagram for Gray::cArraySortRef< TYPE, TYPE_KEY >:
Gray::cArraySortFacade< cRefPtr< TYPE >, TYPE *, TYPE_KEY > Gray::cArraySorted< TYPE, TYPE_ARG, TYPE_KEY > Gray::cArrayTyped< TYPE, TYPE_ARG > Gray::CArray< TYPE, ARG_TYPE > Gray::CObject Gray::cArraySortHash< GrayGUI::cXDialogPlacementObj > Gray::cArraySortHash< GrayLib::cNetServerConnection > Gray::cArraySortHash< GrayLib::cTimerInst, HASHCODE_t > Gray::cArraySortHash< GrayLib::cNetHostRangeX4 > Gray::cArraySortHash< GrayLib::cVarTuple, ATOMCODE_t > Gray::cArraySortHash< GrayLib::cThread, THREADID_t > Gray::cArraySortHash< GrayLib::cNetServerPort > Gray::cArraySortHash< GrayJS::cJSXObject > Gray::cArraySortHash< Gray::cAtomDef, ATOMCODE_t > Gray::cArraySortName< GrayLib::cFileChangeElem > Gray::cArraySortName< GrayGUI::cXCheckBox > Gray::cArraySortName< GrayLib::cSyncOp > Gray::cArraySortName< Gray3D::cXTextureFile > Gray::cArraySortName< GrayLib::cSQLDriver, char > Gray::cArraySortName< TYPE, TCHAR > Gray::cArraySortName< GrayLib::cScriptablePropDynamic > Gray::cArraySortName< GrayLib::cManifestElem > Gray::cArraySortName< GrayLib::cLogFileTail > Gray::cArraySortName< GrayLib::cTimeScheduleSpecialEval, char > Gray::cArraySortName< Gray::cAtomDef, ATOMCHAR_t > Gray::cArraySortValue< Gray::cMemPage, UINT_PTR > Gray::cArraySortValue< GrayLib::cTimerInst, TIMESYS_t > Gray::cArraySortValue< cXObjEventSink, EVENTPRI_TYPE > Gray::cArraySortValue< TYPE, ITERATE_t > GrayLib::cArraySortSymName< GrayLib::cXObjPack > GrayLib::cArraySortSymName< GrayLib::cXObjDef >

Public Member Functions

void DisposeAll ()
 
- Public Member Functions inherited from Gray::cArraySortFacade< cRefPtr< TYPE >, TYPE *, TYPE_KEY >
virtual ~cArraySortFacade ()
 
bool IsValidIndex (ITERATE_t i) const noexcept
 
REF_t GetAt (ITERATE_t index) const noexcept
 
REF_t GetAtCheck (ITERATE_t nIndex) const
 
TYPEFindArgForKey (TYPE_KEY key1) const noexcept
 
ITERATE_t FindIForAC_BRUTEFORCE (const TYPE * pData) const
 
ELEM_t PopHead ()
 
ELEM_t PopTail ()
 
void DeleteAll ()
 
- Public Member Functions inherited from Gray::cArraySorted< TYPE, TYPE_ARG, TYPE_KEY >
virtual ~cArraySorted ()
 
ITERATE_t FindINear (REF_t pNew, COMPARE_t &iCompareRes) const
 
ITERATE_t FindINearKey (KEY_t key, COMPARE_t &iCompareRes) const
 
ITERATE_t FindIForKey (KEY_t key) const
 
ITERATE_t FindIFirstForKey (TYPE_KEY nKey) const
 
ITERATE_t FindILastForKey (TYPE_KEY nKey) const
 
ITERATE_t AddPresorted (ITERATE_t index, COMPARE_t iCompareRes, TYPE_ARG pNew)
 
bool RemoveKey (TYPE_KEY key)
 
ITERATE_t Add (TYPE_ARG pNew)
 
void AddArray (const SUPER_t &a)
 
- Public Member Functions inherited from Gray::cArrayTyped< TYPE, TYPE_ARG >
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_ARG > &aValues)
 
const cArrayTyped< TYPE, TYPE_ARG > & operator= (const cArrayTyped< TYPE, TYPE_ARG > &aValues)
 
ITERATE_t FindIFor (TYPE_ARG arg) const
 
bool HasArg (TYPE_ARG arg) const
 
void RemoveLast ()
 
ELEM_t PopHead ()
 
ELEM_t PopTail ()
 
bool RemoveArg (TYPE_ARG arg)
 
void UnLinkArg (TYPE_ARG arg)
 
ITERATE_t AddTail (TYPE_ARG newElement)
 
ITERATE_t PushTail (TYPE_ARG newElement)
 
void AddHead (TYPE_ARG 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

- Public Types inherited from Gray::cArraySortFacade< cRefPtr< TYPE >, TYPE *, TYPE_KEY >
typedef cArraySorted< cRefPtr< TYPE >, TYPE *, TYPE_KEY > SUPER_t
 
typedef SUPER_t::REF_t REF_t
 
typedef SUPER_t::ELEM_t ELEM_t
 
- Public Types inherited from Gray::cArraySorted< TYPE, TYPE_ARG, TYPE_KEY >
typedef cArrayTyped< TYPE, TYPE_ARG > SUPER_t
 
typedef TYPE_KEY KEY_t
 
typedef SUPER_t::REF_t REF_t
 
- Public Types inherited from Gray::cArrayTyped< TYPE, TYPE_ARG >
typedef CArray< TYPE, TYPE_ARG > SUPER_t
 
typedef cArrayTyped< TYPE, TYPE_ARG > THIS_t
 
typedef ITERATE_t iterator
 
typedef ITERATE_t const_iterator
 
typedef TYPE ELEM_t
 What type is stored. More...
 
typedef TYPE_ARG REF_t
 How to refer to this? value or ref or pointer? More...
 
- Protected Member Functions inherited from Gray::cArraySortFacade< cRefPtr< TYPE >, TYPE *, TYPE_KEY >
virtual COMPARE_t CompareData (REF_t pData1, REF_t pData2) const noexcept override
 
- Protected Member Functions inherited from Gray::cArraySorted< TYPE, TYPE_ARG, TYPE_KEY >
virtual COMPARE_t CompareKey (KEY_t key1, REF_t Data2) const
 
bool RemoveArgKey (REF_t pObj, KEY_t key)
 
- Protected Member Functions inherited from Gray::cArrayTyped< TYPE, TYPE_ARG >
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, typename TYPE_KEY>
class Gray::cArraySortRef< TYPE, TYPE_KEY >

A sorted array of cRefPtr<TYPE> objects. the array has a reference to the element. similar to cArrayRef but sorted It will get deleted when the reference count is 0. default sort by memcmp() pointers.

Member Function Documentation

◆ DisposeAll()

template<class TYPE , typename TYPE_KEY >
void Gray::cArraySortRef< TYPE, TYPE_KEY >::DisposeAll ( )
inline

Similar to RemoveAll() except it calls DisposeThis() to try to dereference all the entries.

Note
often DisposeThis() has the effect of removing itself from the list. We protect against this. ASSUME TYPE supports DisposeThis(); like cXObject

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