File indexing completed on 2024-05-12 15:57:03
0001 /* 0002 * SPDX-FileCopyrightText: 2017 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KISREADWRITELOCKPOLICY_H 0008 #define KISREADWRITELOCKPOLICY_H 0009 0010 #include <boost/utility.hpp> 0011 0012 #include <QReadLocker> 0013 #include <QWriteLocker> 0014 #include "KisUpgradeToWriteLocker.h" 0015 0016 struct NormalLockPolicy { 0017 typedef QReadLocker ReadLocker; 0018 typedef QWriteLocker WriteLocker; 0019 }; 0020 0021 struct UpgradeLockPolicy { 0022 struct FakeLocker : private boost::noncopyable { 0023 FakeLocker(QReadWriteLock *) {} 0024 }; 0025 0026 typedef FakeLocker ReadLocker; 0027 typedef KisUpgradeToWriteLocker WriteLocker; 0028 }; 0029 0030 struct NoLockPolicy { 0031 struct FakeLocker : private boost::noncopyable { 0032 FakeLocker(QReadWriteLock *) {} 0033 }; 0034 0035 typedef FakeLocker ReadLocker; 0036 typedef FakeLocker WriteLocker; 0037 }; 0038 #endif // KISREADWRITELOCKPOLICY_H