/* * 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 #include namespace Swift { class IQRouter; class ErrorPayload; class WhiteboardPayload; class WhiteboardSession { public: typedef boost::shared_ptr ref; public: WhiteboardSession(const JID& jid, IQRouter* router); virtual ~WhiteboardSession(); void handleIncomingAction(boost::shared_ptr payload); void sendElement(const WhiteboardElement::ref element); void cancel(); const JID& getTo() const; virtual std::string getClientID() const = 0; public: boost::signal< void(const WhiteboardElement::ref element)> onElementReceived; boost::signal< void(const JID& contact)> onSessionTerminateReceived; boost::signal< void(const JID& contact)> onRequestAccepted; boost::signal< void(const JID& contact)> onSessionCancelled; boost::signal< void(const JID& contact)> onRequestRejected; protected: JID toJID_; IQRouter* router_; }; }