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