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

#include <cThreadLocal.h>

Inheritance diagram for GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >:
IThreadCloseHandler Gray::IThreadLocal GrayLib::cThreadLocalTypeSmart< GrayJS::cJSXContext >

Public Member Functions

 cThreadLocalType ()
 
virtual ~cThreadLocalType ()
 
TYPE_ARG GetDataForThreadId (THREADID_t nThreadID) const
 
TYPE_ARG GetData () const
 
bool PutData (TYPE_ARG Data)
 
virtual void OnThreadClose (THREADID_t nThreadID)
 
void RemoveAll ()
 
ITERATE_t GetSize () const
 
bool IsEmpty () const
 
- Public Member Functions inherited from Gray::IThreadLocal
virtual void * GetDataNewV ()=0
 

Public Attributes

cThreadLockFast m_Lock
 

Protected Attributes

cArraySortStructHash< TYPE_INST, THREADID_t > m_a
 

Detailed Description

template<class TYPE_INST, class TYPE_ARG>
class GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >

base class for cThreadLocalTypeNew and cThreadLocalTypeSmart. ASSUME TYPE_INST is based on cThreadLocalInst and TYPE_ARG is a pointer to heap.

Constructor & Destructor Documentation

◆ cThreadLocalType()

template<class TYPE_INST , class TYPE_ARG >
GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::cThreadLocalType ( )
inline

Register myself so i get a cleanup callback when a thread is destroyed.

◆ ~cThreadLocalType()

template<class TYPE_INST , class TYPE_ARG >
virtual GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::~cThreadLocalType ( )
inlinevirtual

Member Function Documentation

◆ GetData()

template<class TYPE_INST , class TYPE_ARG >
TYPE_ARG GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::GetData ( ) const
inline

Get info stored for the current thread. Do not auto create

◆ GetDataForThreadId()

template<class TYPE_INST , class TYPE_ARG >
TYPE_ARG GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::GetDataForThreadId ( THREADID_t  nThreadID) const
inline

Find data for a thread other than the current.

◆ GetSize()

template<class TYPE_INST , class TYPE_ARG >
ITERATE_t GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::GetSize ( ) const
inline

◆ IsEmpty()

template<class TYPE_INST , class TYPE_ARG >
bool GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::IsEmpty ( ) const
inline

◆ OnThreadClose()

template<class TYPE_INST , class TYPE_ARG >
virtual void GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::OnThreadClose ( THREADID_t  nThreadID)
inlinevirtual

Destroys the data when a thread is destroyed. Allow the destructor to be called outside the current Thread.

◆ PutData()

template<class TYPE_INST , class TYPE_ARG >
bool GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::PutData ( TYPE_ARG  Data)
inline

Do this each time a thread starts up.

◆ RemoveAll()

template<class TYPE_INST , class TYPE_ARG >
void GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::RemoveAll ( )
inline

prematurely clear all use of this data type. danger, threads might still be using them?

Member Data Documentation

◆ m_a

template<class TYPE_INST , class TYPE_ARG >
cArraySortStructHash< TYPE_INST, THREADID_t > GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::m_a
protected

◆ m_Lock

template<class TYPE_INST , class TYPE_ARG >
cThreadLockFast GrayLib::cThreadLocalType< TYPE_INST, TYPE_ARG >::m_Lock
mutable

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