ThreadSpecific.h 853 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //
  2. // "$Id$"
  3. //
  4. // Copyright (c)1992-2011, ZheJiang Dahua Technology Stock CO.LTD.
  5. // All Rights Reserved.
  6. //
  7. // Description:
  8. // Revisions: Year-Month-Day SVN-Author Modification
  9. //
  10. #ifndef DAHUA3_THREAD_SPECIFIC_H__
  11. #define DAHUA3_THREAD_SPECIFIC_H__
  12. #include "Defs.h"
  13. namespace Dahua {
  14. namespace Infra {
  15. struct ThreadSpecificInternal;
  16. /// 线程专有存储(又称线程本地存储); TSS(Thread-Specific Storage), TLS(Thread Local Storage)
  17. class INFRA_API CThreadSpecific
  18. {
  19. public:
  20. /// 构造函数; 分配 TSS 索引
  21. CThreadSpecific();
  22. /// 析构函数; 释放 TSS 索引
  23. ~CThreadSpecific();
  24. /// TSS 索引是否可用
  25. bool valid();
  26. /// 设置存储值
  27. bool setValue(void const* value);
  28. /// 取得存储值
  29. bool getValue(void** pvalue);
  30. private:
  31. ThreadSpecificInternal* m_internal;
  32. };
  33. } // namespace Infra
  34. } // namespace Dahua
  35. #endif // DAHUA_THREAD_SPECIFIC_H__