diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-10 16:22:18 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-10 16:22:18 +0000 |
| commit | 70c376063aa3a30db16facd8c103b2c6ef3b3e36 (patch) | |
| tree | 5b28dd41176dba2d11eb45c3a6ed84fb7f263498 /examples/example_5_rpcInterface | |
| parent | 1b16399a98d3f659d349e3e13e12d91dab954a22 (diff) | |
| download | qxmpp-70c376063aa3a30db16facd8c103b2c6ef3b3e36.tar.gz | |
rename "example" to "examples"
Diffstat (limited to 'examples/example_5_rpcInterface')
| -rw-r--r-- | examples/example_5_rpcInterface/example_5_rpcInterface.pro | 12 | ||||
| -rw-r--r-- | examples/example_5_rpcInterface/main.cpp | 39 | ||||
| -rw-r--r-- | examples/example_5_rpcInterface/remoteinterface.cpp | 15 | ||||
| -rw-r--r-- | examples/example_5_rpcInterface/remoteinterface.h | 20 | ||||
| -rw-r--r-- | examples/example_5_rpcInterface/rpcClient.cpp | 38 | ||||
| -rw-r--r-- | examples/example_5_rpcInterface/rpcClient.h | 40 | ||||
| -rw-r--r-- | examples/example_5_rpcInterface/xmlrpctest.txt | 63 |
7 files changed, 227 insertions, 0 deletions
diff --git a/examples/example_5_rpcInterface/example_5_rpcInterface.pro b/examples/example_5_rpcInterface/example_5_rpcInterface.pro new file mode 100644 index 00000000..eaa19e67 --- /dev/null +++ b/examples/example_5_rpcInterface/example_5_rpcInterface.pro @@ -0,0 +1,12 @@ +include(../example.pri) + +TARGET = example_5_rpcInterface + +SOURCES += main.cpp \ + rpcClient.cpp \ + remoteinterface.cpp + +HEADERS += rpcClient.h \ + remoteinterface.h + +OTHER_FILES += README diff --git a/examples/example_5_rpcInterface/main.cpp b/examples/example_5_rpcInterface/main.cpp new file mode 100644 index 00000000..5792cc21 --- /dev/null +++ b/examples/example_5_rpcInterface/main.cpp @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2008-2010 The QXmpp developers + * + * Author: + * Manjeet Dahiya + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + + +#include <QtCore/QCoreApplication> +#include "rpcClient.h" +#include "QXmppLogger.h" + +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + + QXmppLogger::getLogger()->setLoggingType(QXmppLogger::StdoutLogging); + + rpcClient client; + client.configuration().setUseSASLAuthentication( false ); + client.connectToServer("jabber.geiseri.com", "server", "Passw0rd", "geiseri.com"); + return a.exec(); +} diff --git a/examples/example_5_rpcInterface/remoteinterface.cpp b/examples/example_5_rpcInterface/remoteinterface.cpp new file mode 100644 index 00000000..77d52384 --- /dev/null +++ b/examples/example_5_rpcInterface/remoteinterface.cpp @@ -0,0 +1,15 @@ +#include "remoteinterface.h" + +RemoteInterface::RemoteInterface(QObject *parent) : QXmppInvokable(parent) +{ +} + +bool RemoteInterface::isAuthorized( const QString &jid ) const +{ + return true; +} + +QString RemoteInterface::echoString(const QString& message) +{ + return "Echo: " + message; +} diff --git a/examples/example_5_rpcInterface/remoteinterface.h b/examples/example_5_rpcInterface/remoteinterface.h new file mode 100644 index 00000000..02ce72d7 --- /dev/null +++ b/examples/example_5_rpcInterface/remoteinterface.h @@ -0,0 +1,20 @@ +#ifndef REMOTEINTERFACE_H +#define REMOTEINTERFACE_H + +#include "QXmppInvokable.h" + +class RemoteInterface : public QXmppInvokable +{ + Q_OBJECT +public: + RemoteInterface(QObject *parent = 0); + + bool isAuthorized( const QString &jid ) const; + +// RPC Interface +public slots: + QString echoString( const QString &message ); + +}; + +#endif // REMOTEINTERFACE_H diff --git a/examples/example_5_rpcInterface/rpcClient.cpp b/examples/example_5_rpcInterface/rpcClient.cpp new file mode 100644 index 00000000..60dd75ea --- /dev/null +++ b/examples/example_5_rpcInterface/rpcClient.cpp @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2008-2010 The QXmpp developers + * + * Author: + * Ian Reinhart Geiser + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + + +#include "rpcClient.h" +#include "remoteinterface.h" + +rpcClient::rpcClient(QObject *parent) + : QXmppClient(parent) +{ + addInvokableInterface( new RemoteInterface(this) ); +} + +rpcClient::~rpcClient() +{ + +} + diff --git a/examples/example_5_rpcInterface/rpcClient.h b/examples/example_5_rpcInterface/rpcClient.h new file mode 100644 index 00000000..22eda459 --- /dev/null +++ b/examples/example_5_rpcInterface/rpcClient.h @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2008-2010 The QXmpp developers + * + * Author: + * Ian Reinhart Geiser + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + + +#ifndef RPCCLIENT_H +#define RPCCLIENT_H + +#include "QXmppClient.h" + +class rpcClient : public QXmppClient +{ + Q_OBJECT + +public: + rpcClient(QObject *parent = 0); + ~rpcClient(); + +}; + +#endif // RPCCLIENT_H diff --git a/examples/example_5_rpcInterface/xmlrpctest.txt b/examples/example_5_rpcInterface/xmlrpctest.txt new file mode 100644 index 00000000..4796fdd3 --- /dev/null +++ b/examples/example_5_rpcInterface/xmlrpctest.txt @@ -0,0 +1,63 @@ +<stream:stream + to='geiseri.com' + xmlns='jabber:client' + xmlns:stream='http://etherx.jabber.org/streams'> + +<iq id='A3' type='set'> + <query xmlns='jabber:iq:auth'> + <username>client</username> + <resource>telnet</resource> + <password>Passw0rd</password> + </query> +</iq> + +<presence/> + +<iq type='set' + from='client@geiseri.com/telnet' + to='server@geiseri.com/QXmpp' + id='rpc1'> + <query xmlns='jabber:iq:rpc'> + <methodCall> + <methodName>RemoteInterface.echoString</methodName> + <params> + <param> + <value><string>Test string</string></value> + </param> + </params> + </methodCall> + </query> +</iq> + +<iq type='set' + from='client@geiseri.com/telnet' + to='server@geiseri.com/QXmpp' + id='rpc1'> + <query xmlns='jabber:iq:rpc'> + <methodCall> + <methodName>RemoteInterface.badMethod</methodName> + <params> + <param> + <value><string>Test string</string></value> + </param> + </params> + </methodCall> + </query> +</iq> + +<iq type='set' + from='client@geiseri.com/telnet' + to='server@geiseri.com/QXmpp' + id='rpc1'> + <query xmlns='jabber:iq:rpc'> + <methodCall> + <methodName>BadInterface.echoString</methodName> + <params> + <param> + <value><string>Test string</string></value> + </param> + </params> + </methodCall> + </query> +</iq> + |
