00001
#ifndef CRYPTOPP_TRDLOCAL_H
00002
#define CRYPTOPP_TRDLOCAL_H
00003
00004
#include "cryptopp_config.h"
00005
00006
#ifdef THREADS_AVAILABLE
00007
00008
#include "misc.h"
00009
00010
#ifdef HAS_WINTHREADS
00011
#include <windows.h>
00012
typedef DWORD ThreadLocalIndexType;
00013
#else
00014
#include <pthread.h>
00015
typedef pthread_key_t ThreadLocalIndexType;
00016
#endif
00017
00018 NAMESPACE_BEGIN(CryptoPP)
00019
00020
00021 class
ThreadLocalStorage : public NotCopyable
00022 {
00023
public:
00024
00025 class Err :
public OS_Error
00026 {
00027
public:
00028
Err(
const std::string& operation,
int error);
00029 };
00030
00031
ThreadLocalStorage();
00032 ~
ThreadLocalStorage();
00033
00034
void SetValue(
void *value);
00035
void *GetValue() const;
00036
00037 private:
00038 ThreadLocalIndexType m_index;
00039 };
00040
00041 NAMESPACE_END
00042
00043 #endif
00044
00045 #endif