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

#include <cThreadLockRef.h>

Inheritance diagram for Gray::cThreadLockableRef:
Gray::cRefBase Gray::cThreadLockStub IUnknown Gray::cLockableBase GrayLib::cNetAddrTracker GrayLib::cXObject GrayLib::cClientAddrObj GrayGUI::cXWindow GrayLib::cHttpScriptedProtocolStream GrayLib::cScriptContextObj GrayLib::cXObjDef GrayLib::cXObject2 GrayGUI::cXColorGrid GrayGUI::cXComboBox GrayGUI::cXImage GrayGUI::cXProgressBar GrayGUI::cXScrollBar GrayGUI::cXSpinCounter GrayGUI::cXStaticMultiScroll GrayGUI::cXWindowText GrayLib::cXObjPack GrayLib::cXObjPackChild GrayMapData::cMapPatch GrayX::GrayXRoot

Public Member Functions

 cThreadLockableRef (int iStaticRefCount=0) noexcept
 
virtual ~cThreadLockableRef ()
 
virtual void onThreadLockFail (TIMESYSD_t dwWaitMS)
 
- Public Member Functions inherited from Gray::cRefBase
 cRefBase (int iRefCount=0) noexcept
 
virtual ~cRefBase ()
 
int get_RefCount () const noexcept
 
HASHCODE_t get_HashCode () const noexcept
 
 STDMETHOD_ (HASHCODE_t, get_HashCodeX)() const noexcept
 
virtual void onFinalRelease ()
 
bool isValidObj () const noexcept
 
 STDMETHOD_ (ULONG, AddRef)(void) override
 
 STDMETHOD_ (ULONG, Release)(void) override
 
STDMETHOD() QueryInterface (const IID &riid, void __RPC_FAR *__RPC_FAR *ppvObject) override
 
void IncRefCount ()
 
void DecRefCount ()
 
bool isStaticConstruct () const noexcept
 
void StaticConstruct ()
 
void StaticDestruct ()
 
bool isDestructing () noexcept
 
void SetDestructing ()
 
- Public Member Functions inherited from Gray::cThreadLockStub
THREADID_t get_ThreadLockOwner () const
 

Additional Inherited Members

- Protected Member Functions inherited from Gray::cLockableBase
 cLockableBase () noexcept
 
 ~cLockableBase ()
 
LONG get_LockCount () const
 
bool isLocked () const
 
void IncLockCount ()
 
LONG DecLockCount ()
 
void Lock ()
 
LONG Unlock ()
 

Detailed Description

Base class for a dynamic data structure that may be locked for multi threaded access (cThreadLockCount) and locked for delete/usage (cRefBase). These are fairly cheap and fast.

Constructor & Destructor Documentation

◆ cThreadLockableRef()

Gray::cThreadLockableRef::cThreadLockableRef ( int  iStaticRefCount = 0)
inlinenoexcept

◆ ~cThreadLockableRef()

virtual Gray::cThreadLockableRef::~cThreadLockableRef ( )
inlinevirtual

Member Function Documentation

◆ onThreadLockFail()

virtual void Gray::cThreadLockableRef::onThreadLockFail ( TIMESYSD_t  dwWaitMS)
inlinevirtual

a DEBUG trap for locks failing.


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