Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

trdlocal.h

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 //! thread local storage 00021 class ThreadLocalStorage : public NotCopyable 00022 { 00023 public: 00024 //! exception thrown by ThreadLocalStorage class 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 // #ifdef THREADS_AVAILABLE 00044 00045 #endif

Generated on Wed Jul 28 08:07:09 2004 for Crypto++ by doxygen 1.3.7