blob: 3aa3ae589055326fc470e743bf219f0d22540d9d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
/*
* Copyright (C) 2008-2012 The QXmpp developers
*
* Authors:
* Ian Reinhart Geiser
* Jeremy Lainé
*
* 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 QXMPPRPCIQ_H
#define QXMPPRPCIQ_H
#include "QXmppIq.h"
#include <QVariant>
class QXmlStreamWriter;
class QDomElement;
class QXMPP_EXPORT QXmppRpcMarshaller
{
public:
static void marshall( QXmlStreamWriter *writer, const QVariant &value);
static QVariant demarshall(const QDomElement &elem, QStringList &errors);
};
/// \brief The QXmppRpcResponseIq class represents an IQ used to carry
/// an RPC response as specified by XEP-0009: Jabber-RPC.
///
/// \ingroup Stanzas
class QXMPP_EXPORT QXmppRpcResponseIq : public QXmppIq
{
public:
QXmppRpcResponseIq();
int faultCode() const;
void setFaultCode(int faultCode);
QString faultString() const;
void setFaultString(const QString &faultString);
QVariantList values() const;
void setValues(const QVariantList &values);
/// \cond
static bool isRpcResponseIq(const QDomElement &element);
/// \endcond
protected:
/// \cond
void parseElementFromChild(const QDomElement &element);
void toXmlElementFromChild(QXmlStreamWriter *writer) const;
/// \endcond
private:
int m_faultCode;
QString m_faultString;
QVariantList m_values;
};
/// \brief The QXmppRpcInvokeIq class represents an IQ used to carry
/// an RPC invocation as specified by XEP-0009: Jabber-RPC.
///
/// \ingroup Stanzas
class QXMPP_EXPORT QXmppRpcInvokeIq : public QXmppIq
{
public:
QXmppRpcInvokeIq();
QString method() const;
void setMethod( const QString &method );
QVariantList arguments() const;
void setArguments(const QVariantList &arguments);
/// \cond
static bool isRpcInvokeIq(const QDomElement &element);
/// \endcond
protected:
/// \cond
void parseElementFromChild(const QDomElement &element);
void toXmlElementFromChild(QXmlStreamWriter *writer) const;
/// \endcond
private:
QVariantList m_arguments;
QString m_method;
friend class QXmppRpcErrorIq;
};
class QXMPP_EXPORT QXmppRpcErrorIq : public QXmppIq
{
public:
QXmppRpcErrorIq();
QXmppRpcInvokeIq query() const;
void setQuery(const QXmppRpcInvokeIq &query);
/// \cond
static bool isRpcErrorIq(const QDomElement &element);
/// \endcond
protected:
/// \cond
void parseElementFromChild(const QDomElement &element);
void toXmlElementFromChild(QXmlStreamWriter *writer) const;
/// \endcond
private:
QXmppRpcInvokeIq m_query;
};
#endif // QXMPPRPCIQ_H
|