16 class KDSoapServerObjectInterface::Private
20 : m_serverSocket(nullptr)
27 QString m_faultString;
31 QString m_responseNamespace;
32 QByteArray m_soapAction;
34 QPointer<KDSoapServerSocket> m_serverSocket;
59 const QString method = request.
name();
60 qDebug() <<
"Slot not found:" << method <<
"[soapAction =" <<
soapAction <<
"]" ;
62 response.
createFaultMessage(QString::fromLatin1(
"Server.MethodNotFound"), QString::fromLatin1(
"%1 not found").arg(method), soapVersion);
68 Q_UNUSED(contentType);
76 const QString method = request.
name();
77 qWarning(
"Invalid path: \"%s\"", qPrintable(path));
81 response.
createFaultMessage(QString::fromLatin1(
"Client.Data"), QString::fromLatin1(
"Method %1 not found in path %2").arg(method, path),
92 d->m_faultCode = otherInterface.d->m_faultCode;
93 d->m_faultString = otherInterface.d->m_faultString;
94 d->m_faultActor = otherInterface.d->m_faultActor;
95 d->m_detail = otherInterface.d->m_detail;
96 d->m_detailValue = otherInterface.d->m_detailValue;
97 d->m_responseHeaders = otherInterface.d->m_responseHeaders;
98 d->m_responseNamespace = otherInterface.d->m_responseNamespace;
103 Q_ASSERT(!faultCode.isEmpty());
104 d->m_faultCode = faultCode;
105 d->m_faultString = faultString;
106 d->m_faultActor = faultActor;
107 d->m_detail = detail;
112 Q_ASSERT(!faultCode.isEmpty());
113 d->m_faultCode = faultCode;
114 d->m_faultString = faultString;
115 d->m_faultActor = faultActor;
116 d->m_detailValue = detail;
119 void KDSoapServerObjectInterface::storeFaultAttributes(
KDSoapMessage &message)
const
122 message.
addArgument(QString::fromLatin1(
"faultcode"), d->m_faultCode);
123 message.
addArgument(QString::fromLatin1(
"faultstring"), d->m_faultString);
124 message.
addArgument(QString::fromLatin1(
"faultactor"), d->m_faultActor);
125 if (d->m_detailValue.isNil() || d->m_detailValue.isNull()) {
126 message.
addArgument(QString::fromLatin1(
"detail"), d->m_detail);
129 detailAsList.append(d->m_detailValue);
130 message.
addArgument(QString::fromLatin1(
"detail"), detailAsList);
137 return !d->m_faultCode.isEmpty();
142 return d->m_serverSocket;
147 return d->m_requestHeaders;
150 void KDSoapServerObjectInterface::setRequestHeaders(
const KDSoapHeaders &headers,
const QByteArray &soapAction)
152 d->m_requestHeaders = headers;
155 d->m_faultCode.clear();
156 d->m_responseHeaders.clear();
161 d->m_responseHeaders = headers;
164 KDSoapHeaders KDSoapServerObjectInterface::responseHeaders()
const
166 return d->m_responseHeaders;
171 return d->m_soapAction;
194 const qint64 written = d->m_serverSocket->write(httpReply);
195 Q_ASSERT(written == httpReply.size());
201 d->m_serverSocket->writeXML(reply, isFault);
206 d->m_responseNamespace = ns;
209 QString KDSoapServerObjectInterface::responseNamespace()
const
211 return d->m_responseNamespace;
void createFaultMessage(const QString &faultCode, const QString &faultText, KDSoap::SoapVersion soapVersion)
void addArgument(const QString &argumentName, const QVariant &argumentValue, const QString &typeNameSpace=QString(), const QString &typeName=QString())
virtual HttpResponseHeaderItems additionalHttpResponseHeaderItems() const
QVector< HttpResponseHeaderItem > HttpResponseHeaderItems
KDSoapServerObjectInterface()
void setResponseHeaders(const KDSoapHeaders &headers)
virtual ~KDSoapServerObjectInterface()
KDSoapDelayedResponseHandle prepareDelayedResponse()
void doneProcessingRequestWithPath(const KDSoapServerObjectInterface &otherInterface)
void setFault(const QString &faultCode, const QString &faultString, const QString &faultActor=QString(), const QString &detail=QString())
virtual void processRequestWithPath(const KDSoapMessage &request, KDSoapMessage &response, const QByteArray &soapAction, const QString &path)
void writeXML(const QByteArray &reply, bool isFault=false)
KDSoapHeaders requestHeaders() const
QByteArray soapAction() const
void setResponseNamespace(const QString &ns)
QAbstractSocket * serverSocket() const
void sendDelayedResponse(const KDSoapDelayedResponseHandle &responseHandle, const KDSoapMessage &response)
void writeHTTP(const QByteArray &httpReply)
virtual void processRequest(const KDSoapMessage &request, KDSoapMessage &response, const QByteArray &soapAction)
virtual QIODevice * processFileRequest(const QString &path, QByteArray &contentType)
void sendDelayedReply(KDSoapServerObjectInterface *serverObjectInterface, const KDSoapMessage &replyMsg)