summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Whiteboard/WhiteboardSession.h')
-rw-r--r--Swiften/Whiteboard/WhiteboardSession.h11
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_;
};