/usr/include/Swiften/Client/Client.h is in libswiften-dev 2.0+dev6-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 | /*
* Copyright (c) 2010 Remko Tronçon
* Licensed under the GNU General Public License v3.
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#pragma once
#include <Swiften/Base/API.h>
#include <Swiften/Client/CoreClient.h>
#include <Swiften/Base/SafeString.h>
namespace Swift {
class SoftwareVersionResponder;
class BlindCertificateTrustChecker;
class XMPPRoster;
class XMPPRosterImpl;
class MUCManager;
class XMPPRosterController;
class PresenceOracle;
class PresenceSender;
class DirectedPresenceSender;
class StanzaChannelPresenceSender;
class MUCRegistry;
class Storages;
class MemoryStorages;
class VCardManager;
class AvatarManager;
class CapsManager;
class EntityCapsManager;
class EntityCapsProvider;
class NickResolver;
class SubscriptionManager;
class ClientDiscoManager;
class NickManager;
class FileTransferManager;
class JingleSessionManager;
class FileTransferManager;
class WhiteboardSessionManager;
/**
* Provides the core functionality for writing XMPP client software.
*
* Besides connecting to an XMPP server, this class also provides interfaces for
* performing most tasks on the XMPP network.
*/
class SWIFTEN_API Client : public CoreClient {
public:
/**
* Constructs a client for the given JID with the given password.
*
* \param storages The interfaces for storing cache information etc. If
* this is NULL,
* all data will be stored in memory (and be lost on shutdown)
*/
Client(const JID& jid, const SafeString& password, NetworkFactories* networkFactories, Storages* storages = NULL);
~Client();
/**
* Sets the software version of the client.
*
* This will be used to respond to version queries from other entities.
*/
void setSoftwareVersion(const std::string& name, const std::string& version, const std::string& os = "");
/**
* Returns a representation of the roster.
*
* The roster is initially empty. To populate it, call requestRoster(),
* which will request the roster from the server. When the roster has
* been requested, it will also be kept up to date when it is updated on
* the server side.
*
* This pointer remains the same across the lifetime of Client. All
* changes to the roster (e.g. after the initial roster request, or after
* subsequent roster updates) are notified through the XMPPRoster's
* signals.
*
* \see requestRoster()
*/
XMPPRoster* getRoster() const;
/**
* Requests the roster from the server.
*
* \see getRoster()
*/
void requestRoster();
/**
* Returns the last received presence for the given (full) JID.
*/
boost::shared_ptr<Presence> getLastPresence(const JID& jid) const;
/**
* Returns the presence with the highest priority received for the given JID.
*/
boost::shared_ptr<Presence> getHighestPriorityPresence(const JID& bareJID) const;
PresenceOracle* getPresenceOracle() const {
return presenceOracle;
}
PresenceSender* getPresenceSender() const;
MUCManager* getMUCManager() const {
return mucManager;
}
MUCRegistry* getMUCRegistry() const {
return mucRegistry;
}
VCardManager* getVCardManager() const {
return vcardManager;
}
AvatarManager* getAvatarManager() const {
return avatarManager;
}
EntityCapsProvider* getEntityCapsProvider() const;
NickManager* getNickManager() const;
NickResolver* getNickResolver() const {
return nickResolver;
}
SubscriptionManager* getSubscriptionManager() const {
return subscriptionManager;
}
ClientDiscoManager* getDiscoManager() const {
return discoManager;
}
/**
* Returns a FileTransferManager for the client. This is only available after the onConnected
* signal has been fired.
*
* WARNING: File transfer will only work if Swiften is built in 'experimental' mode.
*/
FileTransferManager* getFileTransferManager() const;
/**
* Configures the client to always trust a non-validating
* TLS certificate from the server.
* This is equivalent to setting a BlindCertificateTrustChecker
* using setCertificateTrustChecker().
*/
void setAlwaysTrustCertificates();
WhiteboardSessionManager* getWhiteboardSessionManager() const;
public:
/**
* This signal is emitted when a JID changes presence.
*/
boost::signal<void (boost::shared_ptr<Presence>)> onPresenceChange;
private:
Storages* getStorages() const;
protected:
void handleConnected();
private:
Storages* storages;
MemoryStorages* memoryStorages;
SoftwareVersionResponder* softwareVersionResponder;
XMPPRosterImpl* roster;
XMPPRosterController* rosterController;
PresenceOracle* presenceOracle;
DirectedPresenceSender* directedPresenceSender;
StanzaChannelPresenceSender* stanzaChannelPresenceSender;
MUCRegistry* mucRegistry;
VCardManager* vcardManager;
AvatarManager* avatarManager;
CapsManager* capsManager;
EntityCapsManager* entityCapsManager;
NickManager* nickManager;
NickResolver* nickResolver;
SubscriptionManager* subscriptionManager;
MUCManager* mucManager;
ClientDiscoManager* discoManager;
JingleSessionManager* jingleSessionManager;
FileTransferManager* fileTransferManager;
BlindCertificateTrustChecker* blindCertificateTrustChecker;
WhiteboardSessionManager* whiteboardSessionManager;
};
}
|