30#include <QtCore/QVariant>
37 Private() : mUserAgent(
"KDE XMLRPC resources" ), mDigestAuth( false ){}
39 void queryFinished(
Query * );
44 QList<Query*> mPendingQueries;
47void Client::Private::queryFinished(
Query *query )
49 mPendingQueries.removeAll( query );
54 : QObject( parent ), d( new Private )
59 : QObject( parent ), d( new Private )
66 QList<Query *>::Iterator it;
67 for ( it = d->mPendingQueries.begin(); it != d->mPendingQueries.end(); ++it ) {
68 ( *it )->deleteLater();
71 d->mPendingQueries.clear();
78 d->mUrl =
url.isValid() ?
url : KUrl();
98 return d->mDigestAuth;
103 d->mDigestAuth = enabled;
107 QObject *msgObj,
const char *messageSlot,
108 QObject *faultObj,
const char *faultSlot,
const QVariant &
id )
111 QMap<QString, QString> metaData;
113 if ( d->mUrl.isEmpty() ) {
114 kWarning() <<
"Cannot execute call to" << method <<
": empty server URL";
118 if ( d->mUserAgent.isEmpty() ) {
119 metaData[
"UserAgent"] =
"KDE-XMLRPC";
121 metaData[
"UserAgent"] = d->mUserAgent;
124 if ( d->mDigestAuth ) {
125 metaData[
"WWW-Authenticate:"] =
"Digest";
129 connect( query, SIGNAL(message(QList<QVariant>,QVariant)), msgObj, messageSlot );
130 connect( query, SIGNAL(fault(
int,QString,QVariant)), faultObj, faultSlot );
131 connect( query, SIGNAL(finished(
Query*)),
this, SLOT(queryFinished(
Query*)) );
132 d->mPendingQueries.append( query );
134 query->
call( d->mUrl.url(), method, args, metaData );
138 QObject *msgObj,
const char *messageSlot,
139 QObject *faultObj,
const char *faultSlot,
142 QList<QVariant> args;
144 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
148 QObject *msgObj,
const char *messageSlot,
149 QObject *faultObj,
const char *faultSlot,
152 QList<QVariant> args;
153 args << QVariant( arg );
154 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
158 QObject *msgObj,
const char *messageSlot,
159 QObject *faultObj,
const char *faultSlot,
162 QList<QVariant> args;
163 args << QVariant( arg );
164 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
168 QObject *msgObj,
const char *messageSlot,
169 QObject *faultObj,
const char *faultSlot,
172 QList<QVariant> args;
173 args << QVariant( arg );
174 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
178 QObject *msgObj,
const char *messageSlot,
179 QObject *faultObj,
const char *faultSlot,
182 QList<QVariant> args;
183 args << QVariant( arg );
184 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
188 QObject *msgObj,
const char *messageSlot,
189 QObject *faultObj,
const char *faultSlot,
192 QList<QVariant> args;
193 args << QVariant( arg );
194 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
198 QObject *msgObj,
const char *messageSlot,
199 QObject *faultObj,
const char *faultSlot,
202 QList<QVariant> args;
203 args << QVariant( arg );
204 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
208 QObject *msgObj,
const char *messageSlot,
209 QObject *faultObj,
const char *faultSlot,
212 QList<QVariant> args;
213 for (
int i = 0; i < arg.count(); ++i ) {
214 args << QVariant( arg[ i ] );
217 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
220#include "moc_client.cpp"
void setUrl(const KUrl &url)
Sets the url the Client will connect to.
void setDigestAuthEnabled(bool enabled)
Enables/disables HTTP-Digest authentication.
Client(QObject *parent=0)
Constructs a XML-RPC Client.
~Client()
Destroys the XML-RPC Client.
void call(const QString &method, const QList< QVariant > &args, QObject *msgObj, const char *messageSlot, QObject *faultObj, const char *faultSlot, const QVariant &id=QVariant())
Calls the given method on a XML-RPC server, with the given argument list.
bool isDigestAuthEnabled() const
Returns true if HTTP-Digest authentication is enabled, false if not.
QString userAgent() const
Returns the user agent string currently used by the Client.
void setUserAgent(const QString &userAgent)
Sets the userAgent string the Client will use to identify itself.
KUrl url() const
Returns the current url the XML-RPC Client will connect to.
Query is a class that represents an individual XML-RPC call.
static Query * create(const QVariant &id=QVariant(), QObject *parent=0)
Constructs a query.
void call(const QString &server, const QString &method, const QList< QVariant > &args, const QMap< QString, QString > &jobMetaData)
Calls the specified method on the specified server with the given argument list.
This file is part of the API for accessing XML-RPC Servers and defines the Client class.
Names for XmlRpc related classes.
This file is part of KXmlRpc and defines our internal classes.