50 TYP& m_Get(
void)
const
52 TYP* P =
static_cast<TYP*
>(::TlsGetValue(m_dwTlsIndex));
57 ::TlsSetValue(m_dwTlsIndex, P);
70 m_dwTlsIndex = ::TlsAlloc();
71 if ( m_dwTlsIndex == TLS_OUT_OF_INDEXES )
85 ::TlsFree(m_dwTlsIndex);
93 const TYP&
Get(
void)
const
130template<
typename TYP>
155 const TYP&
Get(
void)
const
158 DWORD dw = ::GetCurrentThreadId();
159 if ( ! m_mapTyp.
HasKey(dw) )
161 m_mapTyp[dw] = m_typ;
174 DWORD dw = ::GetCurrentThreadId();
175 if ( ! m_mapTyp.
HasKey(dw) )
177 m_mapTyp[dw] = m_typ;
191DWORD gdwTlsIndex = 0;
198class Receiver :
public CSocketUdp::IListener
203 DWORD r = s_tsl_dwData.
Get();
204 s_tsl_dwData.
Set(::GetCurrentThreadId());
205 TRACE2(
"[%08X] : %08X\n",::GetCurrentThreadId(), r);
208 s_tsl_strData.
Set(
"Thread!!");
209 TRACE2(
"[%08X] : %s\n",::GetCurrentThreadId(),s);
223 event.GetPeerName(str, wPort);
224 TRACE2(
"%s %d\n", str, wPort);
233void CTnbTestDlg::OnBtnVir()
238 DWORD d = ::TlsAlloc();
239 if ( d == TLS_OUT_OF_INDEXES )
245 TRACE1(
"max= %d\n",vdwIndex.
GetSize());
250 DWORD r = s_tsl_dwData.
Get();
251 s_tsl_dwData.
Set(10222);
254 s_tsl_strData.
Set(
"Main");
#define loop(VAR, CNT)
loop構文.
bool HasKey(INK key) const
[確認] キー有無
CStr GetEventString(void) const
[取得] イベントコード文字列取得
size_t GetDataSize(void) const
[取得] データ長取得
bool HasEvent(void) const
[確認] Event(Error)を持っている
const BYTE * GetData(void) const
[取得] データアドレス取得
拡張スレッドローカルオブジェクトテンプレートクラス
const TYP & Get(void) const
[取得] 値取得
~CThreadLocalObjectExT(void)
デストラクタ
void Set(const TYP &t)
[設定] 値設定
CThreadLocalObjectExT(const TYP &t=TYP())
コンストラクタ
const TYP & Get(void) const
[取得] 値取得
CThreadLocalObjectT(const TYP &t=TYP())
コンストラクタ
~CThreadLocalObjectT(void)
デストラクタ
void Set(const TYP &t)
[設定] 値設定
void Set(const TYP &t)
[設定] 値設定
TYP Get(void) const
[取得] 値取得
virtual size_t GetSize(void) const
[取得] サイズ取得
virtual const TYP & At(INDEX index) const
[取得] 要素の参照取得.
virtual bool RemoveAll(void)
[削除] 空化
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
CStrVector DumpData(size_t size, const void *pData, bool canAllDump=true, size_t width=16, bool isUnicode=false)
[作成] バイナリダンプ用文字配列作成.
#define EXCLUSIVE(CLS)
簡易排他制御マクロ.