diff options
Diffstat (limited to 'Swiften/Whiteboard/WhiteboardSessionManager.h')
-rw-r--r-- | Swiften/Whiteboard/WhiteboardSessionManager.h | 81 |
1 files changed, 44 insertions, 37 deletions
diff --git a/Swiften/Whiteboard/WhiteboardSessionManager.h b/Swiften/Whiteboard/WhiteboardSessionManager.h index d06b856..4f14665 100644 --- a/Swiften/Whiteboard/WhiteboardSessionManager.h +++ b/Swiften/Whiteboard/WhiteboardSessionManager.h @@ -4,51 +4,58 @@ * See Documentation/Licenses/BSD-simplified.txt for more information. */ +/* + * Copyright (c) 2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + #pragma once #include <map> +#include <boost/signals2.hpp> + #include <Swiften/Base/API.h> -#include <Swiften/Queries/IQRouter.h> -#include <Swiften/JID/JID.h> #include <Swiften/Client/StanzaChannel.h> -#include <Swiften/Base/boost_bsignals.h> -#include <Swiften/Whiteboard/WhiteboardSession.h> +#include <Swiften/JID/JID.h> +#include <Swiften/Queries/IQRouter.h> #include <Swiften/Whiteboard/IncomingWhiteboardSession.h> #include <Swiften/Whiteboard/OutgoingWhiteboardSession.h> +#include <Swiften/Whiteboard/WhiteboardSession.h> namespace Swift { - class IQRouter; - class WhiteboardResponder; - class PresenceOracle; - class EntityCapsProvider; - - class SWIFTEN_API WhiteboardSessionManager { - friend class WhiteboardResponder; - public: - WhiteboardSessionManager(IQRouter* router, StanzaChannel* stanzaChannel, PresenceOracle* presenceOracle, EntityCapsProvider* capsProvider); - ~WhiteboardSessionManager(); - - WhiteboardSession::ref getSession(const JID& to); - WhiteboardSession::ref requestSession(const JID& to); - - public: - boost::signal< void (IncomingWhiteboardSession::ref)> onSessionRequest; - - private: - JID getFullJID(const JID& bareJID); - OutgoingWhiteboardSession::ref createOutgoingSession(const JID& to); - void handleIncomingSession(IncomingWhiteboardSession::ref session); - void handlePresenceReceived(Presence::ref presence); - void handleAvailableChanged(bool available); - void deleteSessionEntry(const JID& contact); - - private: - std::map<JID, boost::shared_ptr<WhiteboardSession> > sessions_; - IQRouter* router_; - StanzaChannel* stanzaChannel_; - PresenceOracle* presenceOracle_; - EntityCapsProvider* capsProvider_; - WhiteboardResponder* responder; - }; + class IQRouter; + class WhiteboardResponder; + class PresenceOracle; + class EntityCapsProvider; + + class SWIFTEN_API WhiteboardSessionManager { + friend class WhiteboardResponder; + public: + WhiteboardSessionManager(IQRouter* router, StanzaChannel* stanzaChannel, PresenceOracle* presenceOracle, EntityCapsProvider* capsProvider); + ~WhiteboardSessionManager(); + + WhiteboardSession::ref getSession(const JID& to); + WhiteboardSession::ref requestSession(const JID& to); + + public: + boost::signals2::signal< void (IncomingWhiteboardSession::ref)> onSessionRequest; + + private: + JID getFullJID(const JID& bareJID); + OutgoingWhiteboardSession::ref createOutgoingSession(const JID& to); + void handleIncomingSession(IncomingWhiteboardSession::ref session); + void handlePresenceReceived(Presence::ref presence); + void handleAvailableChanged(bool available); + void deleteSessionEntry(const JID& contact); + + private: + std::map<JID, std::shared_ptr<WhiteboardSession> > sessions_; + IQRouter* router_; + StanzaChannel* stanzaChannel_; + PresenceOracle* presenceOracle_; + EntityCapsProvider* capsProvider_; + WhiteboardResponder* responder; + }; } |