#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