QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RLockedFile.h
Go to the documentation of this file.
1
20#ifndef RLOCKEDFILE_H
21#define RLOCKEDFILE_H
22
23#include "core_global.h"
24
25#include <QtCore/QFile>
26#ifdef Q_OS_WIN
27#include <QtCore/QVector>
28#endif
29
30class QCADCORE_EXPORT RLockedFile : public QFile
31{
32public:
33 enum LockMode { NoLock = 0, ReadLock, WriteLock };
34
36 RLockedFile(const QString &name);
38
39 bool open(OpenMode mode);
40
41 bool lock(LockMode mode, bool block = true);
42 bool unlock();
43 bool isLocked() const;
44 LockMode lockMode() const;
45
46private:
47#ifdef Q_OS_WIN
48 Qt::HANDLE wmutex;
49 Qt::HANDLE rmutex;
50 QVector<Qt::HANDLE> rmutexes;
51 QString mutexname;
52
53 Qt::HANDLE getMutexHandle(int idx, bool doCreate);
54 bool waitMutex(Qt::HANDLE mutex, bool doBlock);
55
56#endif
58};
59
60#endif
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RLockedFile.h:31
LockMode
Definition RLockedFile.h:33
LockMode m_lock_mode
Definition RLockedFile.h:57
#define QCADCORE_EXPORT
Definition core_global.h:10