File indexing completed on 2025-02-16 04:50:06
0001 /* 0002 SPDX-FileCopyrightText: 2017 Krzysztof Nowicki <krissn@op.pl> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QMutex> 0010 #include <QThread> 0011 0012 #include "fakeewsserver.h" 0013 #include "fakeewsserver_export.h" 0014 0015 class FAKEEWSSERVER_EXPORT FakeEwsServerThread : public QThread 0016 { 0017 Q_OBJECT 0018 public: 0019 explicit FakeEwsServerThread(QObject *parent = nullptr); 0020 ~FakeEwsServerThread() override; 0021 0022 // FakeEwsServer *server() const; 0023 ushort portNumber() const 0024 { 0025 return mPortNumber; 0026 } 0027 0028 bool isRunning() const 0029 { 0030 return mIsRunning == 1; 0031 } 0032 0033 void setDialog(const FakeEwsServer::DialogEntry::List &dialog); 0034 void setDefaultReplyCallback(const FakeEwsServer::DialogEntry::ReplyCallback &defaultReplyCallback); 0035 void setOverrideReplyCallback(const FakeEwsServer::DialogEntry::ReplyCallback &overrideReplyCallback); 0036 void queueEventsXml(const QStringList &events); 0037 bool waitServerStarted() const; 0038 Q_SIGNALS: 0039 void serverStarted(bool ok); 0040 0041 protected: 0042 void run() override; 0043 private Q_SLOTS: 0044 void doQueueEventsXml(const QStringList &events); 0045 0046 private: 0047 QScopedPointer<FakeEwsServer> mServer; 0048 ushort mPortNumber; 0049 QAtomicInt mIsRunning; 0050 mutable QMutex mMutex; 0051 };