#ifndef QREADWRITELOCK_H
#define QREADWRITELOCK_H 
#include <QtCore/qglobal.h>
#include <limits.h>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
#ifndef QT_NO_THREAD
struct QReadWriteLockPrivate;
class QReadWriteLock{
   public: QReadWriteLock();
   public: ~QReadWriteLock();
   public: void lockForRead();
   public: bool tryLockForRead();
   public: void lockForWrite();
   public: bool tryLockForWrite();
   public: void unlock();
   private: QReadWriteLock(class QReadWriteLock const &);
   private: class QReadWriteLock& operator =(class QReadWriteLock const &);
   private: struct QReadWriteLockPrivate* d;
};
class QReadLocker{
   public: inline ~QReadLocker();
   public: inline void unlock();
   public: inline void relock();
   public: inline class QReadWriteLock* readWriteLock() const
   private: QReadLocker(class QReadLocker const &);
   private: class QReadLocker& operator =(class QReadLocker const &);
   private: union /*anonymous*/{
      class QReadWriteLock* q_lock;
      quintptr q_val;
   };
   public: inline QReadLocker(class QReadWriteLock* areadWriteLock);
};
class QWriteLocker{
   public: inline ~QWriteLocker();
   public: inline void unlock();
   public: inline void relock();
   public: inline class QReadWriteLock* readWriteLock() const
   private: QWriteLocker(class QWriteLocker const &);
   private: class QWriteLocker& operator =(class QWriteLocker const &);
   private: union /*anonymous*/{
      class QReadWriteLock* q_lock;
      quintptr q_val;
   };
   public: inline QWriteLocker(class QReadWriteLock* areadWriteLock);
};
#else // QT_NO_THREAD
#endif // QT_NO_THREAD
#endif // QREADWRITELOCK_H