17 #ifndef KDSOAPCLIENTTHREAD_P_H
18 #define KDSOAPCLIENTTHREAD_P_H
20 #include "KDSoapMessage.h"
21 #include "KDSoapAuthentication.h"
22 #include <QtCore/QWaitCondition>
23 #include <QtCore/QQueue>
24 #include <QtCore/QThread>
25 #include <QtCore/QMutex>
26 #include <QtCore/QSemaphore>
27 #include <QtNetwork/QNetworkAccessManager>
35 class KDSoapThreadTaskData
39 : m_iface(iface), m_method(method), m_message(message), m_action(action), m_headers(headers) {}
41 void waitForCompletion()
43 m_semaphore.acquire();
51 return m_responseHeaders;
59 QSemaphore m_semaphore;
65 class KDSoapThreadTask :
public QObject
69 explicit KDSoapThreadTask(KDSoapThreadTaskData *data)
72 void process(QNetworkAccessManager &accessManager);
79 void slotAuthenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator);
82 KDSoapThreadTaskData *m_data;
85 class KDSoapClientThread :
public QThread
89 explicit KDSoapClientThread(QObject *parent =
nullptr);
91 void enqueue(KDSoapThreadTaskData *taskData);
96 virtual void run()
override;
100 QQueue<KDSoapThreadTaskData *> m_queue;
101 QWaitCondition m_queueNotEmpty;
105 #endif // KDSOAPCLIENTTHREAD_P_H