summaryrefslogtreecommitdiff
path: root/plugin/src/Caelestia/service.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/src/Caelestia/service.cpp')
-rw-r--r--plugin/src/Caelestia/service.cpp70
1 files changed, 0 insertions, 70 deletions
diff --git a/plugin/src/Caelestia/service.cpp b/plugin/src/Caelestia/service.cpp
deleted file mode 100644
index bc919c9..0000000
--- a/plugin/src/Caelestia/service.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-#include "service.hpp"
-
-#include <qdebug.h>
-#include <qpointer.h>
-
-namespace caelestia {
-
-Service::Service(QObject* parent)
- : QObject(parent)
- , m_refCount(0) {}
-
-int Service::refCount() const {
- QMutexLocker locker(&m_mutex);
- return m_refCount;
-}
-
-void Service::ref() {
- bool needsStart = false;
-
- {
- QMutexLocker locker(&m_mutex);
- if (m_refCount == 0) {
- needsStart = true;
- }
- m_refCount++;
- }
- emit refCountChanged();
-
- if (needsStart) {
- const QPointer<Service> self(this);
- QMetaObject::invokeMethod(
- this,
- [self]() {
- if (self) {
- self->start();
- }
- },
- Qt::QueuedConnection);
- }
-}
-
-void Service::unref() {
- bool needsStop = false;
-
- {
- QMutexLocker locker(&m_mutex);
- if (m_refCount == 0) {
- return;
- }
- m_refCount--;
- if (m_refCount == 0) {
- needsStop = true;
- }
- }
- emit refCountChanged();
-
- if (needsStop) {
- const QPointer<Service> self(this);
- QMetaObject::invokeMethod(
- this,
- [self]() {
- if (self) {
- self->stop();
- }
- },
- Qt::QueuedConnection);
- }
-}
-
-} // namespace caelestia