~ubuntu-branches/ubuntu/wily/psi/wily-proposed

« back to all changes in this revision

Viewing changes to iris/include/xmpp_client.h

  • Committer: Bazaar Package Importer
  • Author(s): Jan Niehusmann
  • Date: 2009-09-25 17:49:51 UTC
  • mfrom: (6.1.3 sid)
  • Revision ID: james.westby@ubuntu.com-20090925174951-lvm7kdap82o8xhn3
Tags: 0.13-1
* Updated to upstream version 0.13
* Set Standards-Version to 3.8.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (C) 2003  Justin Karneges
3
 
 *
4
 
 * This library is free software; you can redistribute it and/or
5
 
 * modify it under the terms of the GNU Lesser General Public
6
 
 * License as published by the Free Software Foundation; either
7
 
 * version 2.1 of the License, or (at your option) any later version.
8
 
 *
9
 
 * This library is distributed in the hope that it will be useful,
10
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
 
 * Lesser General Public License for more details.
13
 
 *
14
 
 * You should have received a copy of the GNU Lesser General Public
15
 
 * License along with this library; if not, write to the Free Software
16
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
 
 *
18
 
 */
19
 
 
20
 
#ifndef XMPP_CLIENT_H
21
 
#define XMPP_CLIENT_H
22
 
 
23
 
#include <QObject>
24
 
#include <QStringList>
25
 
 
26
 
#include "xmpp_jid.h"
27
 
#include "xmpp_status.h"
28
 
#include "xmpp_discoitem.h"
29
 
 
30
 
class QString;
31
 
class QDomElement;
32
 
class QDomDocument;
33
 
namespace XMPP {
34
 
        class ClientStream;
35
 
        class Features;
36
 
        class FileTransferManager;
37
 
        class IBBManager;
38
 
        class JidLinkManager;
39
 
        class LiveRoster;
40
 
        class LiveRosterItem;
41
 
        class Message;
42
 
        class Resource;
43
 
        class ResourceList;
44
 
        class Roster;
45
 
        class RosterItem;
46
 
        class S5BManager;
47
 
        class Stream;
48
 
        class Task;
49
 
}
50
 
 
51
 
namespace XMPP
52
 
{
53
 
        class Client : public QObject
54
 
        {
55
 
                Q_OBJECT
56
 
 
57
 
        public:
58
 
                Client(QObject *parent=0);
59
 
                ~Client();
60
 
 
61
 
                bool isActive() const;
62
 
                void connectToServer(ClientStream *s, const Jid &j, bool auth=true);
63
 
                void start(const QString &host, const QString &user, const QString &pass, const QString &resource);
64
 
                void close(bool fast=false);
65
 
 
66
 
                Stream & stream();
67
 
                QString streamBaseNS() const;
68
 
                const LiveRoster & roster() const;
69
 
                const ResourceList & resourceList() const;
70
 
 
71
 
                void send(const QDomElement &);
72
 
                void send(const QString &);
73
 
 
74
 
                QString host() const;
75
 
                QString user() const;
76
 
                QString pass() const;
77
 
                QString resource() const;
78
 
                Jid jid() const;
79
 
 
80
 
                void rosterRequest();
81
 
                void sendMessage(const Message &);
82
 
                void sendSubscription(const Jid &, const QString &, const QString& nick = QString());
83
 
                void setPresence(const Status &);
84
 
 
85
 
                void debug(const QString &);
86
 
                QString genUniqueId();
87
 
                Task *rootTask();
88
 
                QDomDocument *doc() const;
89
 
 
90
 
                QString OSName() const;
91
 
                QString timeZone() const;
92
 
                int timeZoneOffset() const;
93
 
                QString clientName() const;
94
 
                QString clientVersion() const;
95
 
                QString capsNode() const;
96
 
                QString capsVersion() const;
97
 
                QString capsExt() const;
98
 
 
99
 
                void setOSName(const QString &);
100
 
                void setTimeZone(const QString &, int);
101
 
                void setClientName(const QString &);
102
 
                void setClientVersion(const QString &);
103
 
                void setCapsNode(const QString &);
104
 
                void setCapsVersion(const QString &);
105
 
 
106
 
                void setIdentity(DiscoItem::Identity);
107
 
                DiscoItem::Identity identity();
108
 
 
109
 
                void setFeatures(const Features& f);
110
 
                const Features& features() const;
111
 
 
112
 
                void addExtension(const QString& ext, const Features& f);
113
 
                void removeExtension(const QString& ext);
114
 
                const Features& extension(const QString& ext) const;
115
 
                QStringList extensions() const;
116
 
                
117
 
                S5BManager *s5bManager() const;
118
 
                IBBManager *ibbManager() const;
119
 
                JidLinkManager *jidLinkManager() const;
120
 
 
121
 
                void setFileTransferEnabled(bool b);
122
 
                FileTransferManager *fileTransferManager() const;
123
 
 
124
 
                QString groupChatPassword(const QString& host, const QString& room) const;
125
 
                bool groupChatJoin(const QString &host, const QString &room, const QString &nick, const QString& password = QString(), int maxchars = -1, int maxstanzas = -1, int seconds = -1, const Status& = Status());
126
 
                void groupChatSetStatus(const QString &host, const QString &room, const Status &);
127
 
                void groupChatChangeNick(const QString &host, const QString &room, const QString &nick, const Status &);
128
 
                void groupChatLeave(const QString &host, const QString &room);
129
 
 
130
 
        signals:
131
 
                void activated();
132
 
                void disconnected();
133
 
                //void authFinished(bool, int, const QString &);
134
 
                void rosterRequestFinished(bool, int, const QString &);
135
 
                void rosterItemAdded(const RosterItem &);
136
 
                void rosterItemUpdated(const RosterItem &);
137
 
                void rosterItemRemoved(const RosterItem &);
138
 
                void resourceAvailable(const Jid &, const Resource &);
139
 
                void resourceUnavailable(const Jid &, const Resource &);
140
 
                void presenceError(const Jid &, int, const QString &);
141
 
                void subscription(const Jid &, const QString &, const QString &);
142
 
                void messageReceived(const Message &);
143
 
                void debugText(const QString &);
144
 
                void xmlIncoming(const QString &);
145
 
                void xmlOutgoing(const QString &);
146
 
                void groupChatJoined(const Jid &);
147
 
                void groupChatLeft(const Jid &);
148
 
                void groupChatPresence(const Jid &, const Status &);
149
 
                void groupChatError(const Jid &, int, const QString &);
150
 
 
151
 
                void incomingJidLink();
152
 
 
153
 
        private slots:
154
 
                //void streamConnected();
155
 
                //void streamHandshaken();
156
 
                //void streamError(const StreamError &);
157
 
                //void streamSSLCertificateReady(const QSSLCert &);
158
 
                //void streamCloseFinished();
159
 
                void streamError(int);
160
 
                void streamReadyRead();
161
 
                void streamIncomingXml(const QString &);
162
 
                void streamOutgoingXml(const QString &);
163
 
 
164
 
                void slotRosterRequestFinished();
165
 
 
166
 
                // basic daemons
167
 
                void ppSubscription(const Jid &, const QString &, const QString&);
168
 
                void ppPresence(const Jid &, const Status &);
169
 
                void pmMessage(const Message &);
170
 
                void prRoster(const Roster &);
171
 
 
172
 
                void s5b_incomingReady();
173
 
                void ibb_incomingReady();
174
 
 
175
 
        public:
176
 
                class GroupChat;
177
 
        private:
178
 
                void cleanup();
179
 
                void distribute(const QDomElement &);
180
 
                void importRoster(const Roster &);
181
 
                void importRosterItem(const RosterItem &);
182
 
                void updateSelfPresence(const Jid &, const Status &);
183
 
                void updatePresence(LiveRosterItem *, const Jid &, const Status &);
184
 
 
185
 
                class ClientPrivate;
186
 
                ClientPrivate *d;
187
 
        };
188
 
}
189
 
 
190
 
#endif