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 Mon Apr 19 18:12:33 2004 for Crypto++ by doxygen 1.3.6-20040222