~qutim/jreen/ubuntu

1 by Vsevolod Velichko
Import upstream version 1.1.0
1
/****************************************************************************
2
**
3
** Jreen
4
**
5
** Copyright © 2011 Ruslan Nigmatullin <euroelessar@yandex.ru>
6
**
7
*****************************************************************************
8
**
9
** $JREEN_BEGIN_LICENSE$
10
** This program is free software: you can redistribute it and/or modify
11
** it under the terms of the GNU General Public License as published by
12
** the Free Software Foundation, either version 2 of the License, or
13
** (at your option) any later version.
14
**
15
** This program is distributed in the hope that it will be useful,
16
** but WITHOUT ANY WARRANTY; without even the implied warranty of
17
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
** See the GNU General Public License for more details.
19
**
20
** You should have received a copy of the GNU General Public License
21
** along with this program.  If not, see http://www.gnu.org/licenses/.
22
** $JREEN_END_LICENSE$
23
**
24
****************************************************************************/
25
26
#ifndef IQ_H
27
#define IQ_H
28
29
#include "stanza.h"
30
31
namespace Jreen
32
{
33
34
class IQPrivate;
35
class JREEN_EXPORT IQ : public Stanza
36
{
37
	Q_DECLARE_PRIVATE(IQ)
38
public:
39
	typedef QSharedPointer<IQ> Ptr;
40
	/**
41
	* Describes the different valid IQ types.
42
	*/
43
	enum Type
44
	{
45
		Get = 0,                    /**< The stanza is a request for information or requirements. */
46
		Set,                        /**< The stanza provides required data, sets new values, or
47
									 * replaces existing values. */
48
		Result,                     /**< The stanza is a response to a successful get or set request. */
49
		Error,                      /**< An error has occurred regarding processing or delivery of a
50
									 * previously-sent get or set (see Stanza Errors (Section 9.3)). */
51
		Invalid                     /**< The stanza is invalid */
52
	};
53
	IQ(Type type, const JID& to, const QString& id = QString());
54
	IQ();
55
	IQ(IQPrivate &p);
56
	inline IQ &operator =(const IQ &stanza)
57
		{ return *static_cast<IQ *>(&Stanza::operator =(stanza)); }
58
	Type subtype() const;
59
	void accept() const;
60
	bool accepted() const;
61
};
62
63
}
64
65
#endif // IQ_H