diff options
author | Mateusz Piekos <mateuszpiekos@gmail.com> | 2012-06-15 10:48:54 (GMT) |
---|---|---|
committer | Mateusz Piekos <mateuszpiekos@gmail.com> | 2012-06-15 10:48:54 (GMT) |
commit | 1dc6b7f7a3d96df848edad85c0d07d99340e3a3e (patch) | |
tree | db68d9c342293b18ce982a1eccbebde307ad0773 /Swiften/Whiteboard | |
parent | 70de68383506430c297056cd3389595fc696df1e (diff) | |
download | swift-contrib-1dc6b7f7a3d96df848edad85c0d07d99340e3a3e.zip swift-contrib-1dc6b7f7a3d96df848edad85c0d07d99340e3a3e.tar.bz2 |
Moved serialization of elements to WhiteboardSerializer
Diffstat (limited to 'Swiften/Whiteboard')
-rw-r--r-- | Swiften/Whiteboard/Elements/WhiteboardElement.h | 21 | ||||
-rw-r--r-- | Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h | 17 | ||||
-rw-r--r-- | Swiften/Whiteboard/Elements/WhiteboardLineElement.h | 47 | ||||
-rw-r--r-- | Swiften/Whiteboard/IncomingWhiteboardSession.h | 4 | ||||
-rw-r--r-- | Swiften/Whiteboard/WhiteboardSession.cpp | 7 | ||||
-rw-r--r-- | Swiften/Whiteboard/WhiteboardSession.h | 2 |
6 files changed, 96 insertions, 2 deletions
diff --git a/Swiften/Whiteboard/Elements/WhiteboardElement.h b/Swiften/Whiteboard/Elements/WhiteboardElement.h new file mode 100644 index 0000000..5095506 --- /dev/null +++ b/Swiften/Whiteboard/Elements/WhiteboardElement.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2012 Mateusz Piękos + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#pragma once + +#include <boost/shared_ptr.hpp> +#include <Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h> + +namespace Swift { + class WhiteboardElement { + public: + typedef boost::shared_ptr<WhiteboardElement> ref; + + public: + virtual ~WhiteboardElement() {} + virtual void accept(WhiteboardElementVisitor& visitor) = 0; + }; +} diff --git a/Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h b/Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h new file mode 100644 index 0000000..b5fd546 --- /dev/null +++ b/Swiften/Whiteboard/Elements/WhiteboardElementVisitor.h @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2012 Mateusz Piękos + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#pragma once + +namespace Swift { + class WhiteboardLineElement; + + class WhiteboardElementVisitor { + public: + virtual ~WhiteboardElementVisitor() {} + virtual void visit(const WhiteboardLineElement* /*element*/) = 0; + }; +} diff --git a/Swiften/Whiteboard/Elements/WhiteboardLineElement.h b/Swiften/Whiteboard/Elements/WhiteboardLineElement.h new file mode 100644 index 0000000..b64e397 --- /dev/null +++ b/Swiften/Whiteboard/Elements/WhiteboardLineElement.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2012 Mateusz Piękos + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#pragma once + +#include <Swiften/Whiteboard/Elements/WhiteboardElement.h> + +namespace Swift { + class WhiteboardLineElement : public WhiteboardElement { + public: + typedef boost::shared_ptr<WhiteboardLineElement> ref; + public: + WhiteboardLineElement(int x1, int y1, int x2, int y2) { + x1_ = x1; + y1_ = y1; + x2_ = x2; + y2_ = y2; + } + + int x1() const { + return x1_; + } + + int y1() const { + return y1_; + } + + int x2() const { + return x2_; + } + + int y2() const { + return y2_; + } + + void accept(WhiteboardElementVisitor& visitor) { + visitor.visit(this); + } + + private: + int x1_, y1_, x2_, y2_; + std::string id; + }; +} diff --git a/Swiften/Whiteboard/IncomingWhiteboardSession.h b/Swiften/Whiteboard/IncomingWhiteboardSession.h index 3b15a49..a0d0b49 100644 --- a/Swiften/Whiteboard/IncomingWhiteboardSession.h +++ b/Swiften/Whiteboard/IncomingWhiteboardSession.h @@ -4,12 +4,12 @@ * See Documentation/Licenses/BSD-simplified.txt for more information. */ +#pragma once + #include <Swiften/Whiteboard/WhiteboardSession.h> #include <boost/shared_ptr.hpp> -#pragma once - namespace Swift { class IncomingWhiteboardSession : public WhiteboardSession { public: diff --git a/Swiften/Whiteboard/WhiteboardSession.cpp b/Swiften/Whiteboard/WhiteboardSession.cpp index bfef7c3..9e4fd9f 100644 --- a/Swiften/Whiteboard/WhiteboardSession.cpp +++ b/Swiften/Whiteboard/WhiteboardSession.cpp @@ -42,6 +42,13 @@ namespace Swift { request->send(); } + void WhiteboardSession::sendElement(const WhiteboardElement::ref element) { + boost::shared_ptr<WhiteboardPayload> payload = boost::make_shared<WhiteboardPayload>(); + payload->setElement(element); + boost::shared_ptr<GenericRequest<WhiteboardPayload> > request = boost::make_shared<GenericRequest<WhiteboardPayload> >(IQ::Set, toJID_, payload, router_); + request->send(); + } + void WhiteboardSession::cancel() { boost::shared_ptr<WhiteboardPayload> payload = boost::make_shared<WhiteboardPayload>(WhiteboardPayload::SessionTerminate); boost::shared_ptr<GenericRequest<WhiteboardPayload> > request = boost::make_shared<GenericRequest<WhiteboardPayload> >(IQ::Set, toJID_, payload, router_); diff --git a/Swiften/Whiteboard/WhiteboardSession.h b/Swiften/Whiteboard/WhiteboardSession.h index 7aa67ca..fb4305c 100644 --- a/Swiften/Whiteboard/WhiteboardSession.h +++ b/Swiften/Whiteboard/WhiteboardSession.h @@ -11,6 +11,7 @@ #include <Swiften/JID/JID.h> #include <Swiften/Base/boost_bsignals.h> #include <Swiften/Queries/GenericRequest.h> +#include <Swiften/Whiteboard/Elements/WhiteboardElement.h> namespace Swift { class IQRouter; @@ -26,6 +27,7 @@ namespace Swift { virtual ~WhiteboardSession(); void handleIncomingAction(boost::shared_ptr<WhiteboardPayload> payload); void sendData(const std::string& data); + void sendElement(const WhiteboardElement::ref element); void cancel(); const JID& getTo() const; |