24 #ifndef KDSOAPCLIENTTHREAD_P_H
25 #define KDSOAPCLIENTTHREAD_P_H
27 #include "KDSoapMessage.h"
28 #include "KDSoapAuthentication.h"
29 #include <QtCore/QWaitCondition>
30 #include <QtCore/QQueue>
31 #include <QtCore/QThread>
32 #include <QtCore/QMutex>
33 #include <QtCore/QSemaphore>
34 #include <QtNetwork/QNetworkAccessManager>
42 class KDSoapThreadTaskData
46 : m_iface(iface), m_method(method), m_message(message), m_action(action), m_headers(headers) {}
48 void waitForCompletion() { m_semaphore.acquire(); }
50 KDSoapHeaders responseHeaders()
const {
return m_responseHeaders; }
57 QSemaphore m_semaphore;
63 class KDSoapThreadTask :
public QObject
67 explicit KDSoapThreadTask(KDSoapThreadTaskData* data)
70 void process(QNetworkAccessManager& accessManager);
77 void slotAuthenticationRequired(QNetworkReply* reply, QAuthenticator* authenticator);
80 KDSoapThreadTaskData* m_data;
83 class KDSoapClientThread :
public QThread
87 explicit KDSoapClientThread(QObject *parent = 0);
89 void enqueue(KDSoapThreadTaskData* taskData);
98 QQueue<KDSoapThreadTaskData*> m_queue;
99 QWaitCondition m_queueNotEmpty;
103 #endif // KDSOAPCLIENTTHREAD_P_H