#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