KD SOAP API Documentation  2.2
KDSoapServerObjectInterface.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** This file is part of the KD Soap project.
4 **
5 ** SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
6 **
7 ** SPDX-License-Identifier: MIT
8 **
9 ****************************************************************************/
10 #ifndef KDSOAPSERVEROBJECTINTERFACE_H
11 #define KDSOAPSERVEROBJECTINTERFACE_H
12 
14 #include "KDSoapServerGlobal.h"
16 
17 #include <QIODevice>
18 #include <QtCore/QByteArray>
19 #include <QtCore/QObject>
20 #include <QtCore/QVector>
21 
22 class KDSoapServerSocket;
23 
24 QT_BEGIN_NAMESPACE
25 class QAbstractSocket;
26 QT_END_NAMESPACE
27 
60 {
61 public:
69  virtual ~KDSoapServerObjectInterface();
70 
73 
87  virtual void processRequest(const KDSoapMessage &request, KDSoapMessage &response, const QByteArray &soapAction);
88 
101  virtual QIODevice *processFileRequest(const QString &path, QByteArray &contentType);
102 
121  virtual void processRequestWithPath(const KDSoapMessage &request, KDSoapMessage &response, const QByteArray &soapAction, const QString &path);
122 
124  {
126  HttpResponseHeaderItem(const QByteArray &name, const QByteArray &value);
127  QByteArray m_value;
128  QByteArray m_name;
129  };
130 
131  typedef QVector<HttpResponseHeaderItem> HttpResponseHeaderItems;
132 
139  virtual HttpResponseHeaderItems additionalHttpResponseHeaderItems() const;
140 
147  void doneProcessingRequestWithPath(const KDSoapServerObjectInterface &otherInterface);
148 
154  KDSoapHeaders requestHeaders() const;
155 
159  QByteArray soapAction() const;
160 
164  void setResponseHeaders(const KDSoapHeaders &headers);
165 
173  void setResponseNamespace(const QString &ns);
174 
186  void setFault(const QString &faultCode, const QString &faultString, const QString &faultActor = QString(), const QString &detail = QString());
187 
199  void setFault(const QString &faultCode, const QString &faultString, const QString &faultActor, const KDSoapValue &detail);
200 
204  bool hasFault() const;
205 
211  QAbstractSocket *serverSocket() const;
212 
221  KDSoapDelayedResponseHandle prepareDelayedResponse(); // only valid during processRequest()
227  bool isDelayedResponse() const; // only valid during processRequest()
228 
235  void sendDelayedResponse(const KDSoapDelayedResponseHandle &responseHandle, const KDSoapMessage &response);
236 
243  void writeHTTP(const QByteArray &httpReply);
244 
253  void writeXML(const QByteArray &reply, bool isFault = false);
254 
255 private:
256  friend class KDSoapServerSocket;
257  void setServerSocket(KDSoapServerSocket *serverSocket); // only valid during processRequest()
258  void setRequestHeaders(const KDSoapHeaders &headers, const QByteArray &soapAction);
259  KDSoapHeaders responseHeaders() const;
260  QString responseNamespace() const;
261  void storeFaultAttributes(KDSoapMessage &message) const;
262  class Private;
263  Private *const d;
264 };
265 
266 QT_BEGIN_NAMESPACE
267 Q_DECLARE_INTERFACE(KDSoapServerObjectInterface, "com.kdab.KDSoap.ServerObjectInterface/1.0")
268 QT_END_NAMESPACE
269 
270 #endif // KDSOAPSERVEROBJECTINTERFACE_H
#define KDSOAPSERVER_EXPORT
QVector< HttpResponseHeaderItem > HttpResponseHeaderItems
KDSoapServerObjectInterface(const KDSoapServerObjectInterface &)=delete
KDSoapServerObjectInterface & operator=(const KDSoapServerObjectInterface &)=delete

© 2010-2024 Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
https://www.kdab.com/development-resources/qt-tools/kd-soap/
Generated by doxygen 1.9.1