Krita Source Code Documentation
Loading...
Searching...
No Matches
qtlockedfile.h
Go to the documentation of this file.
1// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
2// SPDX-License-Identifier: BSD-3-Clause
3
4#ifndef QTLOCKEDFILE_H
5#define QTLOCKEDFILE_H
6
7#include <QFile>
8#ifdef Q_OS_WIN
9#include <QVector>
10#endif
11
12namespace QtLP_Private {
13
14class QtLockedFile : public QFile
15{
16public:
18
20 QtLockedFile(const QString &name);
22
23 bool open(OpenMode mode);
24
25 bool lock(LockMode mode, bool block = true);
26 bool unlock();
27 bool isLocked() const;
28 LockMode lockMode() const;
29
30private:
31#ifdef Q_OS_WIN
32 Qt::HANDLE wmutex;
33 Qt::HANDLE rmutex;
34 QVector<Qt::HANDLE> rmutexes;
35 QString mutexname;
36
37 Qt::HANDLE getMutexHandle(int idx, bool doCreate);
38 bool waitMutex(Qt::HANDLE mutex, bool doBlock);
39
40#endif
42};
43}
44#endif
bool open(OpenMode mode)
bool lock(LockMode mode, bool block=true)
static QMutex mutex