KDSOAP 1.2
Public Member Functions
KDSoapServerObjectInterface Class Reference

#include <KDSoapServerObjectInterface.h>

List of all members.

Public Member Functions

 KDSoapServerObjectInterface ()
virtual ~KDSoapServerObjectInterface ()
virtual void processRequest (const KDSoapMessage &request, KDSoapMessage &response, const QByteArray &soapAction)
KDSoapHeaders requestHeaders () const
QByteArray soapAction () const
void setResponseHeaders (const KDSoapHeaders &headers)
void setResponseNamespace (const QString &ns)
void setFault (const QString &faultCode, const QString &faultString, const QString &faultActor, const QString &detail)
bool hasFault () const
KDSoapDelayedResponseHandle prepareDelayedResponse ()
bool isDelayedResponse () const
void sendDelayedResponse (const KDSoapDelayedResponseHandle &responseHandle, const KDSoapMessage &response)

Detailed Description

Base class for server objects, i.e. objects implementing the methods that can be called by SOAP clients.

Your server object must derive from both QObject (directly or indirectly) and from KDSoapServerObjectInterface. The virtual method processRequest is called whenever a SOAP request is being made. To handle the call, either reimplement processRequest and do the dispatching manually (not recommended), or use kdwsdl2cpp to generate the base class for your server object.

Example for manual handling: class EmployeeServerObject : public QObject, public KDSoapServerObjectInterface { Q_OBJECT Q_INTERFACES(KDSoapServerObjectInterface)

public: // methods published to SOAP QString getEmployeeCountry(const QString& employeeName); [...] }; And in the .cpp file: #define KDWSDLServerClass EmployeeServerObject #include "swsdl_employee.cpp"

swsdl_employee.cpp will contain the code which calls getEmployeeCountry when parsing a KDSoapMessage that is a "getEmployeeCountry" request.

Multi-threading note: KDSoapServer will create one instance of a "server object" per thread. So the code in this class does not need to be protected for thread-safety. Make sure to protect any shared resources though.


Constructor & Destructor Documentation

KDSoapServerObjectInterface::KDSoapServerObjectInterface ( )

Constructor

KDSoapServerObjectInterface::~KDSoapServerObjectInterface ( ) [virtual]

Destructor


Member Function Documentation

void KDSoapServerObjectInterface::processRequest ( const KDSoapMessage request,
KDSoapMessage response,
const QByteArray &  soapAction 
) [virtual]

Handle request and return response. The default implementation in this base class is to simply return a fault "method not found". Subclasses must implement the dispatching to actual implementation methods.

When using kdwsdl2cpp to generate the server-side code, this is the method that will be generated, so that you don't have to implement it, only the pure virtual methods called by processRequest.

KDSoapHeaders KDSoapServerObjectInterface::requestHeaders ( ) const

Returns the SOAP headers that were provided together with the SOAP request. This can be used to retrieve authentication headers, or any kind of session (per-client) data.

QByteArray KDSoapServerObjectInterface::soapAction ( ) const

Returns the "Soap Action" header sent by the client.

void KDSoapServerObjectInterface::setResponseHeaders ( const KDSoapHeaders headers)

Sets the soap headers to be sent in the response

void KDSoapServerObjectInterface::setResponseNamespace ( const QString &  ns)

Sets the message namespace to be used in the response. If the requests comes with a message namespace("qualified"), then this can be determined from that namespace. But if the request is not qualified, this is very much necessary (at least when the response has headers, which are always qualified).

Since:
1.2
void KDSoapServerObjectInterface::setFault ( const QString &  faultCode,
const QString &  faultString,
const QString &  faultActor,
const QString &  detail 
)

Instructs KD SOAP to return a fault message instead of the return value of the slot.

Parameters:
faultCodeA code for identifying the fault. Example: "Server.EntryNotFound", or "Client.Authentication". Must not be empty.
faultStringA human-readable explanation of the fault
faultActorInformation about who caused the fault to happen
detailHolds application-specific error information related to the Body element

See http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383507 for more details.

bool KDSoapServerObjectInterface::hasFault ( ) const

Returns true if setFault was called in the current method invocation.

KDSoapDelayedResponseHandle KDSoapServerObjectInterface::prepareDelayedResponse ( )

When a server object wants to implement a SOAP method call using an asynchronous operation (I/O or network for instance), it should call prepareDelayedResponse() from within the call handler, store the handle, return a dummy value (this allows to go back to the event loop), and use the handle later on (typically from a slot) in order to send the delayed response.

Since:
1.2
bool KDSoapServerObjectInterface::isDelayedResponse ( ) const

Returns true if prepareDelayedResponse was called, during this soap call. Mostly useful internally in KDSoap.

Since:
1.2
void KDSoapServerObjectInterface::sendDelayedResponse ( const KDSoapDelayedResponseHandle responseHandle,
const KDSoapMessage response 
)

Send a delayed response.

Parameters:
responseHandlethe identifier of the call we are responding to
responsethe response message for that call
Since:
1.2

The documentation for this class was generated from the following files:
 All Classes Functions Enumerations Enumerator

Klarälvdalens Datakonsult AB (KDAB)
Qt-related services and products
http://www.kdab.com/
http://www.kdab.com/products/kd-soap/