summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Client/Client.cpp')
-rw-r--r--Swiften/Client/Client.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/Swiften/Client/Client.cpp b/Swiften/Client/Client.cpp
index 63cd89f..7363c3f 100644
--- a/Swiften/Client/Client.cpp
+++ b/Swiften/Client/Client.cpp
@@ -12,10 +12,14 @@
#include "Swiften/Presence/PresenceOracle.h"
#include "Swiften/Presence/PresenceSender.h"
#include "Swiften/MUC/MUCRegistry.h"
+#include "Swiften/Client/MemoryStorages.h"
+#include "Swiften/VCards/VCardManager.h"
namespace Swift {
-Client::Client(const JID& jid, const String& password) : CoreClient(jid, password) {
+Client::Client(const JID& jid, const String& password, Storages* storages) : CoreClient(jid, password), storages(storages) {
+ memoryStorages = new MemoryStorages();
+
softwareVersionResponder = new SoftwareVersionResponder(getIQRouter());
softwareVersionResponder->start();
@@ -29,9 +33,13 @@ Client::Client(const JID& jid, const String& password) : CoreClient(jid, passwor
presenceSender = new PresenceSender(getStanzaChannel());
mucRegistry = new MUCRegistry();
+
+ vcardManager = new VCardManager(jid, getIQRouter(), getStorages()->getVCardStorage());
}
Client::~Client() {
+ delete vcardManager;
+
delete mucRegistry;
delete presenceSender;
@@ -42,6 +50,8 @@ Client::~Client() {
softwareVersionResponder->stop();
delete softwareVersionResponder;
+
+ delete memoryStorages;
}
XMPPRoster* Client::getRoster() const {
@@ -65,4 +75,12 @@ Presence::ref Client::getHighestPriorityPresence(const JID& bareJID) const {
return presenceOracle->getHighestPriorityPresence(bareJID);
}
+Storages* Client::getStorages() const {
+ if (storages) {
+ return storages;
+ }
+ return memoryStorages;
+}
+
+
}