29 #include <klocalizedstring.h>
32 #include <QtCore/QVariant>
34 using namespace KXmlRpc;
39 Private() : mUserAgent(
"KDE XMLRPC resources" ), mDigestAuth( false ){}
41 void queryFinished(
Query * );
46 QList<Query*> mPendingQueries;
49 void Client::Private::queryFinished(
Query *query )
51 mPendingQueries.removeAll( query );
56 : QObject( parent ), d( new Private )
61 : QObject( parent ), d( new Private )
68 QList<Query *>::Iterator it;
69 for ( it = d->mPendingQueries.begin(); it != d->mPendingQueries.end(); ++it ) {
70 ( *it )->deleteLater();
73 d->mPendingQueries.clear();
80 d->mUrl = url.isValid() ? url : KUrl();
100 return d->mDigestAuth;
105 d->mDigestAuth = enabled;
109 QObject *msgObj,
const char *messageSlot,
110 QObject *faultObj,
const char *faultSlot,
const QVariant &
id )
113 QMap<QString, QString> metaData;
115 if ( d->mUrl.isEmpty() ) {
116 kWarning() <<
"Cannot execute call to" << method <<
": empty server URL";
120 if ( d->mUserAgent.isEmpty() ) {
121 metaData[
"UserAgent"] =
"KDE-XMLRPC";
123 metaData[
"UserAgent"] = d->mUserAgent;
126 if ( d->mDigestAuth ) {
127 metaData[
"WWW-Authenticate:"] =
"Digest";
131 connect( query, SIGNAL(message(QList<QVariant>,QVariant)), msgObj, messageSlot );
132 connect( query, SIGNAL(fault(
int,QString,QVariant)), faultObj, faultSlot );
133 connect( query, SIGNAL(finished(
Query*)),
this, SLOT(queryFinished(
Query*)) );
134 d->mPendingQueries.append( query );
136 query->
call( d->mUrl.url(), method, args, metaData );
140 QObject *msgObj,
const char *messageSlot,
141 QObject *faultObj,
const char *faultSlot,
144 QList<QVariant> args;
146 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
150 QObject *msgObj,
const char *messageSlot,
151 QObject *faultObj,
const char *faultSlot,
154 QList<QVariant> args;
155 args << QVariant( arg );
156 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
160 QObject *msgObj,
const char *messageSlot,
161 QObject *faultObj,
const char *faultSlot,
164 QList<QVariant> args;
165 args << QVariant( arg );
166 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
170 QObject *msgObj,
const char *messageSlot,
171 QObject *faultObj,
const char *faultSlot,
174 QList<QVariant> args;
175 args << QVariant( arg );
176 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
180 QObject *msgObj,
const char *messageSlot,
181 QObject *faultObj,
const char *faultSlot,
184 QList<QVariant> args;
185 args << QVariant( arg );
186 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
190 QObject *msgObj,
const char *messageSlot,
191 QObject *faultObj,
const char *faultSlot,
194 QList<QVariant> args;
195 args << QVariant( arg );
196 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
200 QObject *msgObj,
const char *messageSlot,
201 QObject *faultObj,
const char *faultSlot,
204 QList<QVariant> args;
205 args << QVariant( arg );
206 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
210 QObject *msgObj,
const char *messageSlot,
211 QObject *faultObj,
const char *faultSlot,
214 QList<QVariant> args;
215 for (
int i = 0; i < arg.count(); ++i ) {
216 args << QVariant( arg[ i ] );
219 call( method, args, msgObj, messageSlot, faultObj, faultSlot,
id );
222 #include "moc_client.cpp"
void setDigestAuthEnabled(bool enabled)
Enables/disables HTTP-Digest authentication.
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.
void setUserAgent(const QString &userAgent)
Sets the userAgent string the Client will use to identify itself.
Client(QObject *parent=0)
Constructs a XML-RPC Client.
This file is part of KXmlRpc and defines our internal classes.
Query is a class that represents an individual XML-RPC call.
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.
KUrl url() const
Returns the current url the XML-RPC Client will connect to.
This file is part of the API for accessing XML-RPC Servers and defines the Client class...
static Query * create(const QVariant &id=QVariant(), QObject *parent=0)
Constructs a query.
QString userAgent() const
Returns the user agent string currently used by the Client.
void setUrl(const KUrl &url)
Sets the url the Client will connect to.
~Client()
Destroys the XML-RPC Client.