• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

trdlocal.h

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

Generated on Sun Jul 25 2010 14:44:11 for Crypto++ by  doxygen 1.7.1