/* * Copyright (c) 2012 Mateusz Piękos * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #include #include #include #include #include namespace Swift { WhiteboardSessionManager::WhiteboardSessionManager(IQRouter* router, PresenceOracle* presenceOracle) : router_(router), presenceOracle_(presenceOracle) { responder = new WhiteboardResponder(this, router); responder->start(); } WhiteboardSessionManager::~WhiteboardSessionManager() { responder->stop(); delete responder; } WhiteboardSession* WhiteboardSessionManager::getSession(const JID& to) { if (sessions_.find(to) == sessions_.end()) { return NULL; } return sessions_[to]; } WhiteboardSession* WhiteboardSessionManager::createSession(const JID& to) { WhiteboardSession* session = new WhiteboardSession(getFullJID(to), router_); sessions_[to] = session; return session; } JID WhiteboardSessionManager::getFullJID(const JID& bareJID) { std::vector presences = presenceOracle_->getAllPresence(bareJID); return presences[0]->getFrom(); } }