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

#include <cThread.h>

Inheritance diagram for GrayLib::cThreadNamed< _TYPE >:
GrayLib::cThreadChecked GrayLib::cThread GrayLib::cThreadBase Gray::cRefBase Gray::cThreadState Gray::CObject Gray::cThreadId IUnknown

Public Member Functions

virtual HRESULT CreateThread (DWORD dwCreationFlags=0) override
 
- Public Member Functions inherited from GrayLib::cThreadChecked
 cThreadChecked ()
 
virtual ~cThreadChecked ()
 
virtual bool CheckStuckThread (TIMESYSD_t iMilliSecTilStuck, bool bTerminateAndRestart)
 called by external thread. More...
 
UINT get_ThreadTicks () const
 
bool isCriticalWait () const
 
void ChangeCriticalWait (int iDelta)
 
- Public Member Functions inherited from GrayLib::cThread
 cThread ()
 
virtual ~cThread ()
 
bool isValidThreadHandle () const noexcept
 
THREADID_t get_HashCode () const noexcept
 
virtual bool isValidCheck () const noexcept
 < memory allocation and structure definitions are valid. More...
 
 STDMETHOD_ (cString, get_Name)() const
 override memory allocation and structure definitions are valid. More...
 
bool isThreadSleeping () const noexcept
 
THREAD_EXITCODE_t get_ExitCodeThread () const
 
int get_ThreadPriority () const
 
bool put_ThreadPriority (int nPriority)
 
bool SuspendThread ()
 
bool ResumeThread ()
 
virtual HRESULT SleepThread (TIMESYSD_t dwWaitMillisec=1, bool bAlertable=false)
 
virtual void WakeThread ()
 
virtual bool RequestStopThread (bool bWillWait=false) noexcept override
 
bool ExitCurrentThread (THREAD_EXITCODE_t nExitCode=THREAD_EXITCODE_OK)
 
bool WaitForThreadExit (TIMESYSD_t nMilliSec=cTimeSys::k_FREQ)
 
THREAD_EXITCODE_t WaitForThreadExitCode (TIMESYSD_t iTimeMSec=cTimeSys::k_FREQ)
 
bool TerminateThread (THREAD_EXITCODE_t iExitCode=THREAD_EXITCODE_ERR, TIMESYSD_t nMilliSec=0)
 
void AttachToCurrentThread ()
 
HRESULT CreateThread (THREAD_FUNC_t pEntryProc, void *pArgs, DWORD dwCreationFlags=0)
 
void CloseThread ()
 
- Public Member Functions inherited from GrayLib::cThreadBase
 cThreadBase () noexcept
 
virtual ~cThreadBase ()
 
- 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)
 
- Public Member Functions inherited from Gray::cThreadId
 cThreadId (THREADID_t nThreadId=k_NULL) noexcept
 
THREADID_t GetThreadId () const noexcept
 
THREADID_t get_HashCode () const noexcept
 
bool isCurrentThread () const noexcept
 
bool isValidId () const noexcept
 
void InitCurrentId () noexcept
 
- 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::cThreadState
 cThreadState () noexcept
 
bool isThreadRunning () const noexcept
 
bool isThreadStopping () const noexcept
 

Static Protected Member Functions

static THREAD_EXITCODE_t _stdcall EntryProc (void *pThisThread)
 
- Static Protected Member Functions inherited from GrayLib::cThread
static THREAD_EXITCODE_t _stdcall EntryProc (void *pThisThread)
 _WorkerThreadProc More...
 

Additional Inherited Members

- Static Public Member Functions inherited from GrayLib::cThreadChecked
static cThreadChecked *GRAYCALL GetCurrentThreadChecked ()
 
- Static Public Member Functions inherited from GrayLib::cThread
static cThread *GRAYCALL GetCurrentThread ()
 
static bool GRAYCALL IsCurrentThreadStopping ()
 
static void GRAYCALL RequestStopThreadArray (bool bWillWait, cThread **ppThreads, size_t nThreads)
 
static void GRAYCALL TerminateThreadArray (THREAD_EXITCODE_t nExitCode, TIMESYSD_t iTimeMSec, cThread **ppThreads, size_t nThreads)
 
- Static Public Member Functions inherited from Gray::cThreadId
static THREADID_t GetCurrentId () noexcept
 
static bool IsValidId (THREADID_t id) noexcept
 
static bool IsEqualId (THREADID_t a, THREADID_t b) noexcept
 
static void SleepCurrent (TIMESYS_t uMs=cTimeSys::k_FREQ) noexcept
 
- Public Attributes inherited from GrayLib::cThreadChecked
UINT m_nThreadTicksLast
 checked periodically by outside observer. More...
 
cTimeSys m_tStart
 When did thread first run ? More...
 
TIMESYS_t m_timeLastChanged
 Last outside detected tick change time. More...
 
UINT m_nRecoveryStage
 What have we done about being stuck ? More...
 
- Static Public Attributes inherited from Gray::cThreadId
static const THREADID_t k_NULL = 0
 Not a valid thread Id. More...
 
- Protected Member Functions inherited from GrayLib::cThreadChecked
virtual bool ThreadTick () override
 
virtual void onThreadCreate () override
 Notification that the thread has started or stopped. More...
 
- Protected Member Functions inherited from GrayLib::cThread
virtual THREAD_EXITCODE_t Run ()
 WorkerThreadProc. More...
 
THREAD_EXITCODE_t RunDirectly ()
 
virtual void onThreadExit (THREAD_EXITCODE_t nExitCode)
 OnExit. More...
 
void onThreadTerminated (THREAD_EXITCODE_t nExitCode)
 
- Protected Attributes inherited from GrayLib::cThreadChecked
UINT m_nThreadTicks
 periodically increment this to make sure the thread is alive! More...
 
- Protected Attributes inherited from GrayLib::cThread
bool m_bThreadSleeping
 Idle worker threads waiting for something to do. inside Sleep() or WaitForSingleObject() More...
 
bool m_bThreadSuspended
 May be resumed. inside Suspend() -> Resume() More...
 
- Protected Attributes inherited from GrayLib::cThreadBase
THREADHANDLE_t m_hThread
 there may be many handles to the same THREADID_t in _WIN32. I must call CloseThread() on this. More...
 
- Protected Attributes inherited from Gray::cThreadId
THREADID_t m_dwThreadId
 unique thread id. i.e. stack base pointer. (Use the MFC name) More...
 
- Protected Attributes inherited from Gray::cThreadState
bool m_bThreadRunning
 called CreateThread() onThreadCreate(), and inside Run(), until onThreadExit() More...
 
volatile bool m_bThreadStopping
 trying to stop the thread nicely. Do this before TerminateThread() More...
 

Detailed Description

template<class _TYPE>
class GrayLib::cThreadNamed< _TYPE >

Give the thread a name via template for easier debugging. Template _TYPE is just used for naming purposes. e.g. overridden as cThreadNamed<PARNET_TYPE>

Member Function Documentation

◆ CreateThread()

template<class _TYPE >
virtual HRESULT GrayLib::cThreadNamed< _TYPE >::CreateThread ( DWORD  dwCreationFlags = 0)
inlineoverridevirtual

Start/restart this thread! use Run() in EntryProc()

Reimplemented from GrayLib::cThread.

◆ EntryProc()

template<class _TYPE >
static THREAD_EXITCODE_t _stdcall GrayLib::cThreadNamed< _TYPE >::EntryProc ( void *  pThisThread)
inlinestaticprotected

Debugger will see this as the entry point (with a name)


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