00001
00002
00003
00004 #ifndef CLIENT_H
00005 #define CLIENT_H
00006
00007 #include <qobject.h>
00008 #include <QHttp>
00009
00010 #include "variant.h"
00011 class QAuthenticator;
00012
00013 namespace xmlrpc {
00014
00043 class Client : public QObject {
00044 Q_OBJECT
00045 public:
00046 Client(QObject * parent = 0);
00047 Client(const QString & hostname, quint16 port = 80, QObject * parent = 0L);
00048
00049 void setHost ( const QString & hostname, quint16 port = 80, QString path="/" );
00050 void setProxy ( const QString & host, int port,
00051 const QString & username = QString(), const QString & password = QString() );
00052 void setSocket ( QTcpSocket * socket );
00053 void setUser ( const QString & userName, const QString & password = QString() );
00054
00055 void setUserAgent( const QString & userAgent );
00056
00057 virtual ~Client();
00058
00059 int request( QList<Variant> params, QString methodName );
00060
00061
00062 int request( QString methodName );
00063 int request( QString methodName, Variant param1 );
00064 int request( QString methodName, Variant param1, Variant param2 );
00065 int request( QString methodName, Variant param1, Variant param2, Variant param3 );
00066 int request( QString methodName, Variant param1, Variant param2, Variant param3, Variant param4 );
00067
00068 signals:
00070 void done( int requestId, QVariant res );
00072 void failed( int requestId, int faultCode, QString faultString );
00073
00075 void authenticationRequired ( const QString & hostname, quint16 port, QAuthenticator * );
00076
00078 void proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *);
00079
00080 protected slots:
00081 void requestFinished(int id, bool error);
00082
00083 private:
00084 class Private;
00085 Private *d;
00086 };
00087
00088 }
00089
00090 #endif // CLIENT_H
00091
00092