/* * Copyright (c) 2012 Mateusz Piękos * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include #include namespace Swift { class IQRouter; class WhiteboardSession; class WhiteboardResponder; class PresenceOracle; class WhiteboardSessionManager { public: WhiteboardSessionManager(IQRouter* router, PresenceOracle* presenceOracle); ~WhiteboardSessionManager(); WhiteboardSession* getSession(const JID& to); WhiteboardSession* acceptSession(const JID& to); void requestSession(const JID& to); void cancelSession(const JID& to); void handleRequestAccepted(const JID& contact, WhiteboardSession* session); public: boost::signal< void (const JID&)> onRequestReceived; boost::signal< void (const JID&, WhiteboardSession*)> onRequestAccepted; private: JID getFullJID(const JID& bareJID); WhiteboardSession* createSession(const JID& to); private: std::map sessions_; IQRouter* router_; PresenceOracle* presenceOracle_; WhiteboardResponder* responder; }; }