Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
Gray::cAtomManager Class Reference

#include <cAtomManager.h>

Inheritance diagram for Gray::cAtomManager:
Gray::cSingleton< cAtomManager > Gray::cSingletonStatic< TYPE > Gray::cSingletonRegister Gray::CObject Gray::cHeapObject Gray::IHeapObject

Public Member Functions

 cAtomManager ()
 
 ~cAtomManager ()
 
cAtomRef FindAtomStr (const ATOMCHAR_t *pszText) const
 
cAtomRef FindAtomHashCode (ATOMCODE_t idAtom) const
 
HRESULT DebugDumpFile (cStreamOutput &o) const
 
const void * get_HeapPtr () const noexcept override
 Get the top level (outermost, freeable) class pointer. I can delete get_HeapPtr(). More...
 
- Public Member Functions inherited from Gray::CObject
virtual ~CObject ()
 
virtual bool isValidCheck () const noexcept
 < memory allocation and structure definitions are valid. More...
 
virtual void AssertValid () const
 < memory allocation and structure definitions are valid. More...
 
virtual void Serialize (cArchive &a)
 
- Public Member Functions inherited from Gray::cHeapObject
 cHeapObject ()
 
virtual ~cHeapObject ()
 
bool IsValidInsideN (INT_PTR index) const
 
bool IsValidInsidePtr (void const *pTest) const
 
virtual size_t GetHeapStatsThis (OUT ITERATE_t &iAllocCount) const
 
virtual bool isValidCheck () const noexcept
 

Protected Member Functions

bool RemoveAtom (cAtomDef *pDef)
 
cAtomDefPtr CreateAtom (ITERATE_t index, COMPARE_t iCompareRes, cStringA sVal)
 
cAtomDefPtr FindorCreateAtomStr (const cStringA &sName)
 
cAtomDefPtr FindorCreateAtomStr (const ATOMCHAR_t *pszName)
 
void SetAtomStatic (cAtomDef *pDef)
 
- Protected Member Functions inherited from Gray::cSingleton< cAtomManager >
 cSingleton (cAtomManager *pObject, const TYPEINFO_t &rAddrCode=typeid(cAtomManager)) noexcept
 
virtual ~cSingleton ()
 
- Protected Member Functions inherited from Gray::cSingletonStatic< TYPE >
 cSingletonStatic (TYPE *pObject) noexcept
 
virtual ~cSingletonStatic () noexcept
 
- Protected Member Functions inherited from Gray::cSingletonRegister
 cSingletonRegister (const TYPEINFO_t &rAddrCode) noexcept
 
virtual ~cSingletonRegister ()
 
void RegisterSingleton ()
 
- Protected Member Functions inherited from Gray::cHeapObject
const void * get_HeapPtr () const noexcept override
 Get the top level (outermost, freeable) class pointer. I can delete get_HeapPtr(). More...
 

Friends

class cSingleton< cAtomManager >
 
class cAtomRef
 
class cAtomTests
 

Additional Inherited Members

- Static Public Member Functions inherited from Gray::cSingleton< cAtomManager >
static cAtomManager *__stdcall get_Single ()
 
static TYPE2 *__stdcall get_SingleT ()
 
static cAtomManager &__stdcall I ()
 
- Static Public Member Functions inherited from Gray::cSingletonStatic< TYPE >
static bool isSingleCreated () noexcept
 
static TYPEget_SingleU () noexcept
 
static TYPEget_Single ()
 
template<class TYPE2 >
static TYPE2 *__stdcall get_SingleCast ()
 
static TYPEI () noexcept
 
- Static Public Member Functions inherited from Gray::cSingletonRegister
static void __stdcall ReleaseModule (HMODULE hMod)
 
- Static Public Attributes inherited from Gray::cSingletonRegister
static cThreadLockFast sm_LockSingle
 common lock for all cSingleton. More...
 
- Protected Attributes inherited from Gray::cSingletonRegister
HMODULE m_hModuleLoaded
 What modules loaded this ? So singletons can be destroyed if DLL/SO unloads. More...
 
- Static Protected Attributes inherited from Gray::cSingletonStatic< TYPE >
static TYPEsm_pThe = nullptr
 pointer to the one and only object of this TYPE. ASSUME automatically init to = nullptr. More...
 

Detailed Description

an alpha sorted string lookup table. CASE IGNORED !

Constructor & Destructor Documentation

◆ cAtomManager()

Gray::cAtomManager::cAtomManager ( )

created on demand to prevent any race conditions at static create time.

◆ ~cAtomManager()

Gray::cAtomManager::~cAtomManager ( )

Member Function Documentation

◆ CreateAtom()

cAtomDefPtr Gray::cAtomManager::CreateAtom ( ITERATE_t  index,
COMPARE_t  iCompareRes,
cStringA  sVal 
)
protected

Insertion sort.

◆ DebugDumpFile()

HRESULT Gray::cAtomManager::DebugDumpFile ( cStreamOutput o) const

◆ FindAtomHashCode()

cAtomRef Gray::cAtomManager::FindAtomHashCode ( ATOMCODE_t  idAtom) const

Is this hash id a valid atom hash ? this is 32 bit specific?

◆ FindAtomStr()

cAtomRef Gray::cAtomManager::FindAtomStr ( const ATOMCHAR_t pszText) const

Get the atom that corresponds to a string. do not create it.

◆ FindorCreateAtomStr() [1/2]

cAtomDefPtr Gray::cAtomManager::FindorCreateAtomStr ( const ATOMCHAR_t pszName)
protected

Find the atom in the atom table if it exists else create a new one.

◆ FindorCreateAtomStr() [2/2]

cAtomDefPtr Gray::cAtomManager::FindorCreateAtomStr ( const cStringA sName)
protected

Find the atom in the atom table if it exists else create a new one. Does NOT return nullptr

◆ get_HeapPtr()

const void* Gray::cAtomManager::get_HeapPtr ( ) const
inlineoverridevirtualnoexcept

Get the top level (outermost, freeable) class pointer. I can delete get_HeapPtr().

Implements Gray::IHeapObject.

◆ RemoveAtom()

bool Gray::cAtomManager::RemoveAtom ( cAtomDef pDef)
protected

◆ SetAtomStatic()

void Gray::cAtomManager::SetAtomStatic ( cAtomDef pDef)
protected

Make this atom permanent. never removed from the atom tables. adds an extra ref.

Friends And Related Function Documentation

◆ cAtomRef

friend class cAtomRef
friend

◆ cAtomTests

friend class cAtomTests
friend

◆ cSingleton< cAtomManager >

friend class cSingleton< cAtomManager >
friend

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