diff options
Diffstat (limited to 'plugin/src/Caelestia/service.cpp')
| -rw-r--r-- | plugin/src/Caelestia/service.cpp | 70 |
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 |