1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
/*
SPDX-FileCopyrightText: 2010-2012, 2020 Friedrich W. H. Kossebau <kossebau@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "checksetselectionlock.h"
// plugin
#include <debug.h>
// Qt
#include <QLockFile>
#include <QSharedPointer>
#include <QString>
namespace Clazy {
class CheckSetSelectionLockPrivate : public QSharedData
{
public:
CheckSetSelectionLockPrivate(const QString& fileName,
const QString& checkSetSelectionId);
public:
QSharedPointer<QLockFile> lockFile;
QString checkSetSelectionId;
};
static QString checkSetSelectionFileLockPath(const QString& checkSetSelectionFilePath)
{
// TODO: just ".lock" conflicts with KConfig(?) using the same
return checkSetSelectionFilePath + QLatin1String(".kdevlock");
}
CheckSetSelectionLockPrivate::CheckSetSelectionLockPrivate(const QString& fileName,
const QString& id)
: lockFile(new QLockFile(fileName.isEmpty() ? fileName : checkSetSelectionFileLockPath(fileName)))
, checkSetSelectionId(id)
{
if (!fileName.isEmpty()) {
if (!lockFile->tryLock(1000)) {
qCWarning(KDEV_CLAZY)
<< "Failed to acquire lock file" << fileName
<< "error =" << lockFile->error();
}
}
}
CheckSetSelectionLock::CheckSetSelectionLock(const QString& fileName,
const QString& checkSetSelectionId)
: d(new CheckSetSelectionLockPrivate(fileName, checkSetSelectionId))
{
}
CheckSetSelectionLock::CheckSetSelectionLock(const CheckSetSelectionLock& other) = default;
CheckSetSelectionLock::~CheckSetSelectionLock() = default;
CheckSetSelectionLock& CheckSetSelectionLock::operator=(const CheckSetSelectionLock& other) = default;
void CheckSetSelectionLock::unlock()
{
d->lockFile->unlock();
}
bool CheckSetSelectionLock::isLocked() const
{
return d->lockFile->isLocked();
}
QString CheckSetSelectionLock::checkSetSelectionId() const
{
return d->checkSetSelectionId;
}
}
|