00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00024 #ifndef KXML_RPC_CLIENT_H
00025 #define KXML_RPC_CLIENT_H
00026
00027 #include "kxmlrpcclient_export.h"
00028
00029 #include <kurl.h>
00030
00031 #include <QtCore/QList>
00032 #include <QtCore/QObject>
00033 #include <QtCore/QVariant>
00034
00036 namespace KXmlRpc {
00037
00053 class KXMLRPCCLIENT_EXPORT Client : public QObject
00054 {
00055 Q_OBJECT
00056
00057 public:
00063 explicit Client( QObject *parent = 0 );
00064
00071 explicit Client( const KUrl &url, QObject *parent = 0 );
00072
00076 ~Client();
00077
00083 KUrl url() const;
00084
00092 void setUrl( const KUrl &url );
00093
00099 QString userAgent() const;
00100
00108 void setUserAgent( const QString &userAgent );
00109
00116 bool isDigestAuthEnabled() const;
00117
00118
00125 void setDigestAuthEnabled( bool enabled );
00126
00127 public Q_SLOTS:
00140 void call( const QString &method, const QList<QVariant> &args,
00141 QObject *msgObj, const char *messageSlot,
00142 QObject *faultObj, const char *faultSlot,
00143 const QVariant &id = QVariant() );
00144
00157 void call( const QString &method, const QVariant &arg,
00158 QObject *msgObj, const char *messageSlot,
00159 QObject *faultObj, const char *faultSlot,
00160 const QVariant &id = QVariant() );
00161
00174 void call( const QString &method, int arg ,
00175 QObject *msgObj, const char *messageSlot,
00176 QObject *faultObj, const char *faultSlot,
00177 const QVariant &id = QVariant() );
00178
00191 void call( const QString &method, bool arg,
00192 QObject *msgObj, const char *messageSlot,
00193 QObject *faultObj, const char *faultSlot,
00194 const QVariant &id = QVariant() );
00195
00208 void call( const QString &method, double arg,
00209 QObject *msgObj, const char *messageSlot,
00210 QObject *faultObj, const char *faultSlot,
00211 const QVariant &id = QVariant() );
00212
00225 void call( const QString &method, const QString &arg,
00226 QObject *msgObj, const char *messageSlot,
00227 QObject *faultObj, const char *faultSlot,
00228 const QVariant &id = QVariant() );
00229
00242 void call( const QString &method, const QByteArray &arg,
00243 QObject *msgObj, const char *messageSlot,
00244 QObject *faultObj, const char *faultSlot,
00245 const QVariant &id = QVariant() );
00246
00259 void call( const QString &method, const QDateTime &arg,
00260 QObject *msgObj, const char *messageSlot,
00261 QObject *faultObj, const char *faultSlot,
00262 const QVariant &id = QVariant() );
00263
00276 void call( const QString &method, const QStringList &arg,
00277 QObject *msgObj, const char *messageSlot,
00278 QObject *faultObj, const char *faultSlot,
00279 const QVariant &id = QVariant() );
00280
00281 private:
00282 class Private;
00283 Private *const d;
00284
00285 template <typename T>
00286 void call( const QString &method, const QList<T> &arg,
00287 QObject *obj1, const char *messageSlot,
00288 QObject *obj2, const char *faultSlot,
00289 const QVariant &id = QVariant() );
00290
00291 Q_PRIVATE_SLOT( d, void queryFinished( Query * ) )
00292 };
00293
00306 template <typename T>
00307 void Client::call( const QString &method, const QList<T> &arg,
00308 QObject *msgObj, const char *messageSlot,
00309 QObject *faultObj, const char *faultSlot,
00310 const QVariant &id )
00311 {
00312 QList<QVariant> args;
00313
00314 for ( int i = 0; i < arg.count(); ++i ) {
00315 args << QVariant( arg[ i ] );
00316 }
00317
00318 return call( method, args, faultObj, faultSlot, msgObj, messageSlot, id );
00319 }
00320
00321 }
00322
00323 #endif
00324