diff options
Diffstat (limited to 'Swiften/Whiteboard/WhiteboardSession.h')
-rw-r--r-- | Swiften/Whiteboard/WhiteboardSession.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Swiften/Whiteboard/WhiteboardSession.h b/Swiften/Whiteboard/WhiteboardSession.h index 0d10af3..7fb03e6 100644 --- a/Swiften/Whiteboard/WhiteboardSession.h +++ b/Swiften/Whiteboard/WhiteboardSession.h @@ -12,6 +12,7 @@ #include <Swiften/Base/boost_bsignals.h> #include <Swiften/Queries/GenericRequest.h> #include <Swiften/Whiteboard/Elements/WhiteboardElement.h> +#include <Swiften/Whiteboard/Operations/WhiteboardOperation.h> namespace Swift { class IQRouter; @@ -27,18 +28,26 @@ namespace Swift { virtual ~WhiteboardSession(); void handleIncomingAction(boost::shared_ptr<WhiteboardPayload> payload); void sendElement(const WhiteboardElement::ref element); + void sendOperation(WhiteboardOperation::ref operation); 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 WhiteboardElement::ref element)> onElementReceived; + boost::signal< void(const WhiteboardOperation::ref operation)> onOperationReceived; 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; + private: + virtual void handleIncomingOperation(WhiteboardOperation::ref operation) = 0; + virtual void handleSendOperationRequest(WhiteboardOperation::ref operation) = 0; + protected: + void sendPayload(boost::shared_ptr<WhiteboardPayload> payload); + JID toJID_; IQRouter* router_; }; |