Warning, file /utilities/okteta/kasten/gui/system/bytearrayviewprofilelock.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 This file is part of the Okteta Kasten module, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2011-2012 Friedrich W. H. Kossebau <kossebau@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "bytearrayviewprofilelock.hpp" 0010 0011 // library 0012 #include <oktetakastengui.hpp> 0013 // Qt 0014 #include <QLockFile> 0015 #include <QSharedPointer> 0016 0017 namespace Kasten { 0018 0019 class ByteArrayViewProfileLockPrivate : public QSharedData 0020 { 0021 public: 0022 ByteArrayViewProfileLockPrivate(const QString& fileName, 0023 const ByteArrayViewProfile::Id& viewProfileId); 0024 0025 public: 0026 QSharedPointer<QLockFile> lockFile; 0027 ByteArrayViewProfile::Id viewProfileId; 0028 }; 0029 0030 static QString 0031 viewProfileFileLockPath(const QString& viewProfileFilePath) 0032 { 0033 // TODO: just ".lock" conflicts with KConfig(?) using the same 0034 return viewProfileFilePath + QLatin1String(".olock"); 0035 } 0036 0037 ByteArrayViewProfileLockPrivate::ByteArrayViewProfileLockPrivate(const QString& fileName, 0038 const ByteArrayViewProfile::Id& id) 0039 : lockFile(new QLockFile(fileName.isEmpty() ? fileName : viewProfileFileLockPath(fileName))) 0040 , viewProfileId(id) 0041 { 0042 if (!fileName.isEmpty()) { 0043 if (!lockFile->tryLock(1000)) { 0044 qCWarning(LOG_KASTEN_OKTETA_GUI) 0045 << "Failed to acquire lock file" << fileName 0046 << "error =" << lockFile->error(); 0047 } 0048 } 0049 } 0050 0051 ByteArrayViewProfileLock::ByteArrayViewProfileLock(const QString& fileName, 0052 const ByteArrayViewProfile::Id& viewProfileId) 0053 : d(new ByteArrayViewProfileLockPrivate(fileName, viewProfileId)) 0054 { 0055 } 0056 0057 ByteArrayViewProfileLock::ByteArrayViewProfileLock(const ByteArrayViewProfileLock& other) = default; 0058 0059 ByteArrayViewProfileLock::~ByteArrayViewProfileLock() = default; 0060 0061 ByteArrayViewProfileLock& ByteArrayViewProfileLock::operator=(const ByteArrayViewProfileLock& other) = default; 0062 0063 void 0064 ByteArrayViewProfileLock::unlock() 0065 { 0066 d->lockFile->unlock(); 0067 } 0068 0069 bool 0070 ByteArrayViewProfileLock::isLocked() const 0071 { 0072 return d->lockFile->isLocked(); 0073 } 0074 0075 ByteArrayViewProfile::Id 0076 ByteArrayViewProfileLock::viewProfileId() const 0077 { 0078 return d->viewProfileId; 0079 } 0080 0081 }