#ifndef QTHREADSTORAGE_H
#define QTHREADSTORAGE_H 
#include <QtCore/qglobal.h>
#ifndef QT_NO_THREAD
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QThreadStorageData{
   public: explicit QThreadStorageData(void (* func)(void*));
   public: ~QThreadStorageData();
   public: void* * get() const
   public: void* * set(void* p);
   public: static void finish(void* *);
   public: int id;
};
#if !defined(QT_MOC_CPP)
template < typename T > inline T* & qThreadStorage_localData(class QThreadStorageData& d, T* *);
template < typename T > inline T* qThreadStorage_localData_const(class QThreadStorageData const & d, T* *);
template < typename T > inline void qThreadStorage_setLocalData(class QThreadStorageData& d, T* * t);
#ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
template < typename T > inline T& qThreadStorage_localData(class QThreadStorageData& d, T*);
template < typename T > inline T qThreadStorage_localData_const(class QThreadStorageData const & d, T*);
template < typename T > inline void qThreadStorage_setLocalData(class QThreadStorageData& d, T* t);
#endif // QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
#endif
template < typename T > class QThreadStorage{
   private: class QThreadStorageData d;
   private: QThreadStorage(class QThreadStorage const &);
   private: class QThreadStorage& operator =(class QThreadStorage const &);
   private: static inline void deleteData(void* x);
   public: inline QThreadStorage();
   public: inline ~QThreadStorage();
   public: inline bool hasLocalData() const
   public: inline T& localData();
   public: inline T localData() const
   public: inline void setLocalData(T t);
};
#endif // QT_NO_THREAD
#endif // QTHREADSTORAGE_H