summaryrefslogtreecommitdiff
path: root/plugin/src/Caelestia/service.cpp
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-13 14:38:44 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-13 14:38:44 +1000
commit306cfc06ed38a2f86616c1f2fe64de45321f21a6 (patch)
treea27c79d9c4d01c2dadeeae74c844875ab7ab4eed /plugin/src/Caelestia/service.cpp
parentpopouts/tray: better interaction (diff)
downloadcaelestia-shell-306cfc06ed38a2f86616c1f2fe64de45321f21a6.tar.gz
caelestia-shell-306cfc06ed38a2f86616c1f2fe64de45321f21a6.tar.bz2
caelestia-shell-306cfc06ed38a2f86616c1f2fe64de45321f21a6.zip
plugin: refactor into modules
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