File indexing completed on 2025-01-19 03:38:30
0001 /* 0002 * BluezQt - Asynchronous Bluez wrapper library 0003 * 0004 * SPDX-FileCopyrightText: 2014 David Rosca <nowrep@gmail.com> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "initmanagerjob.h" 0010 #include "debug.h" 0011 #include "manager.h" 0012 #include "manager_p.h" 0013 0014 namespace BluezQt 0015 { 0016 class InitManagerJobPrivate : public QObject 0017 { 0018 public: 0019 explicit InitManagerJobPrivate(InitManagerJob *q, Manager *manager); 0020 0021 void doStart(); 0022 void initError(const QString &errorText); 0023 void initFinished(); 0024 0025 InitManagerJob *q; 0026 Manager *m_manager; 0027 }; 0028 0029 InitManagerJobPrivate::InitManagerJobPrivate(InitManagerJob *q, Manager *manager) 0030 : QObject(q) 0031 , q(q) 0032 , m_manager(manager) 0033 { 0034 } 0035 0036 void InitManagerJobPrivate::doStart() 0037 { 0038 if (m_manager->d->m_initialized) { 0039 qCWarning(BLUEZQT) << "InitManagerJob: Manager already initialized!"; 0040 q->emitResult(); 0041 return; 0042 } 0043 0044 m_manager->d->init(); 0045 connect(m_manager->d.get(), &ManagerPrivate::initError, this, &InitManagerJobPrivate::initError); 0046 connect(m_manager->d.get(), &ManagerPrivate::initFinished, this, &InitManagerJobPrivate::initFinished); 0047 } 0048 0049 void InitManagerJobPrivate::initError(const QString &errorText) 0050 { 0051 qCWarning(BLUEZQT) << "GetManagerJob Error:" << errorText; 0052 0053 q->setError(InitManagerJob::UserDefinedError); 0054 q->setErrorText(errorText); 0055 q->emitResult(); 0056 } 0057 0058 void InitManagerJobPrivate::initFinished() 0059 { 0060 q->emitResult(); 0061 } 0062 0063 InitManagerJob::InitManagerJob(Manager *manager) 0064 : Job(manager) 0065 , d(new InitManagerJobPrivate(this, manager)) 0066 { 0067 } 0068 0069 InitManagerJob::~InitManagerJob() 0070 { 0071 if (isRunning()) { 0072 qCWarning(BLUEZQT) << "InitManagerJob Error: Job was deleted before finished!"; 0073 0074 setError(UserDefinedError); 0075 setErrorText(QStringLiteral("Job was deleted before finished.")); 0076 emitResult(); 0077 } 0078 } 0079 0080 Manager *InitManagerJob::manager() const 0081 { 0082 return d->m_manager; 0083 } 0084 0085 void InitManagerJob::doStart() 0086 { 0087 d->doStart(); 0088 } 0089 0090 void InitManagerJob::doEmitResult() 0091 { 0092 Q_EMIT result(this); 0093 } 0094 0095 } // namespace BluezQt 0096 0097 #include "moc_initmanagerjob.cpp"