openPilotLog
runguard.h
1
/*
2
*openPilotLog - A FOSS Pilot Logbook Application
3
*Copyright (C) 2020-2022 Felix Turowsky
4
*
5
*This program is free software: you can redistribute it and/or modify
6
*it under the terms of the GNU General Public License as published by
7
*the Free Software Foundation, either version 3 of the License, or
8
*(at your option) any later version.
9
*
10
*This program is distributed in the hope that it will be useful,
11
*but WITHOUT ANY WARRANTY; without even the implied warranty of
12
*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
*GNU General Public License for more details.
14
*
15
*You should have received a copy of the GNU General Public License
16
*along with this program. If not, see <https://www.gnu.org/licenses/>.
17
*/
18
#ifndef RUNGUARD_H
19
#define RUNGUARD_H
20
21
#include <QObject>
22
#include <QSharedMemory>
23
#include <QSystemSemaphore>
24
29
class
RunGuard
30
{
31
32
public
:
33
RunGuard
(
const
QString &key);
34
~
RunGuard
();
35
36
bool
isAnotherRunning();
37
bool
tryToRun();
38
void
release();
39
40
private
:
41
const
QString key;
42
const
QString memLockKey;
43
const
QString sharedmemKey;
44
45
QSharedMemory sharedMem;
46
QSystemSemaphore memLock;
47
48
Q_DISABLE_COPY(
RunGuard
)
49
};
50
51
52
#endif
// RUNGUARD_H
RunGuard
The RunGuard class ensures only a single instance of the application is running simultaneously.
Definition:
runguard.h:30
src
classes
runguard.h
Generated by
1.9.1