#ifndef QMUTEX_H
#define QMUTEX_H 
#include <QtCore/qglobal.h>
#include <new>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
#ifndef QT_NO_THREAD
struct QMutexPrivate;
class QMutex{
   public: enum RecursionMode{
      NonRecursive = 0,
      Recursive = 1,
   };
   public: explicit QMutex(enum QMutex::RecursionMode mode = QMutex::NonRecursive);
   public: ~QMutex();
   public: void lock();
   public: bool tryLock();
   public: void unlock();
   private: QMutex(class QMutex const &);
   private: class QMutex& operator =(class QMutex const &);
   private: struct QMutexPrivate* d;
   friend struct QWaitCondition;
   friend struct QWaitConditionPrivate;
};
struct QWaitCondition;
struct QWaitConditionPrivate;
class QMutexLocker{
   public: explicit inline QMutexLocker(class QMutex* m);
   public: inline ~QMutexLocker();
   public: inline void unlock();
   public: inline void relock();
   public: inline class QMutex* mutex() const
   private: QMutexLocker(class QMutexLocker const &);
   private: class QMutexLocker& operator =(class QMutexLocker const &);
   private: union /*anonymous*/{
      class QMutex* mtx;
      quintptr val;
   };
};
#else // QT_NO_THREAD
#endif // QT_NO_THREAD
#endif // QMUTEX_H