summaryrefslogtreecommitdiff
path: root/xmlrpcinterface.h
diff options
context:
space:
mode:
authorJavier S. Pedro <maemo@javispedro.com>2013-04-01 15:04:58 +0200
committerJavier S. Pedro <maemo@javispedro.com>2013-04-01 15:04:58 +0200
commit5ef8b38e55c1883224fe1f01f47aba45b7b42666 (patch)
tree67a873c6a7c5263d202793314c3b3a61543fbb40 /xmlrpcinterface.h
downloadtapasboard-5ef8b38e55c1883224fe1f01f47aba45b7b42666.tar.gz
tapasboard-5ef8b38e55c1883224fe1f01f47aba45b7b42666.zip
initial import
Diffstat (limited to 'xmlrpcinterface.h')
-rw-r--r--xmlrpcinterface.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/xmlrpcinterface.h b/xmlrpcinterface.h
new file mode 100644
index 0000000..1fce4f1
--- /dev/null
+++ b/xmlrpcinterface.h
@@ -0,0 +1,70 @@
+#ifndef XMLRPCINTERFACE_H
+#define XMLRPCINTERFACE_H
+
+#include <QtCore/QObject>
+#include <QtCore/QVariant>
+#include <QtCore/QUrl>
+#include <QtCore/QXmlStreamWriter>
+#include <QtNetwork/QNetworkAccessManager>
+
+#include "xmlrpcpendingcall.h"
+
+class XmlRpcInterface : public QObject
+{
+ Q_OBJECT
+public:
+ explicit XmlRpcInterface(const QUrl& endpoint, QObject *parent = 0);
+
+ bool isAccessible() const;
+
+ XmlRpcPendingCall *asyncCall(const QString& method,
+ const QVariant &arg1 = QVariant(),
+ const QVariant &arg2 = QVariant(),
+ const QVariant &arg3 = QVariant(),
+ const QVariant &arg4 = QVariant(),
+ const QVariant &arg5 = QVariant(),
+ const QVariant &arg6 = QVariant(),
+ const QVariant &arg7 = QVariant(),
+ const QVariant &arg8 = QVariant());
+
+ XmlRpcPendingCall *asyncCallWithArgumentList(const QString& method,
+ const QList<QVariant>& args);
+
+private:
+ static QByteArray encodeCall(const QString& method, const QList<QVariant>& args);
+ static void encodeValue(QXmlStreamWriter* w, const QVariant& value);
+
+private:
+ QUrl _endpoint;
+ QNetworkAccessManager *_manager;
+
+};
+
+inline bool XmlRpcInterface::isAccessible() const
+{
+ return _manager->networkAccessible() != QNetworkAccessManager::NotAccessible;
+}
+
+inline XmlRpcPendingCall *XmlRpcInterface::asyncCall(const QString &method,
+ const QVariant &arg1,
+ const QVariant &arg2,
+ const QVariant &arg3,
+ const QVariant &arg4,
+ const QVariant &arg5,
+ const QVariant &arg6,
+ const QVariant &arg7,
+ const QVariant &arg8)
+{
+ QList<QVariant> args;
+ if (arg1.isValid()) args << arg1;
+ if (arg2.isValid()) args << arg2;
+ if (arg3.isValid()) args << arg3;
+ if (arg4.isValid()) args << arg4;
+ if (arg5.isValid()) args << arg5;
+ if (arg6.isValid()) args << arg6;
+ if (arg7.isValid()) args << arg7;
+ if (arg8.isValid()) args << arg8;
+ return asyncCallWithArgumentList(method, args);
+}
+
+#endif // XMLRPCINTERFACE_H