diff options
Diffstat (limited to 'Swiften/Whiteboard/OutgoingWhiteboardSession.cpp')
-rw-r--r-- | Swiften/Whiteboard/OutgoingWhiteboardSession.cpp | 95 |
1 files changed, 51 insertions, 44 deletions
diff --git a/Swiften/Whiteboard/OutgoingWhiteboardSession.cpp b/Swiften/Whiteboard/OutgoingWhiteboardSession.cpp index ad81daa..49f48aa 100644 --- a/Swiften/Whiteboard/OutgoingWhiteboardSession.cpp +++ b/Swiften/Whiteboard/OutgoingWhiteboardSession.cpp @@ -4,56 +4,63 @@ * See Documentation/Licenses/BSD-simplified.txt for more information. */ +/* + * Copyright (c) 2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + #include <Swiften/Whiteboard/OutgoingWhiteboardSession.h> -#include <boost/smart_ptr/make_shared.hpp> +#include <memory> + #include <boost/bind.hpp> -#include <Swiften/Elements/WhiteboardPayload.h> +#include <Swiften/Elements/Whiteboard/WhiteboardDeleteOperation.h> #include <Swiften/Elements/Whiteboard/WhiteboardInsertOperation.h> #include <Swiften/Elements/Whiteboard/WhiteboardUpdateOperation.h> -#include <Swiften/Elements/Whiteboard/WhiteboardDeleteOperation.h> +#include <Swiften/Elements/WhiteboardPayload.h> namespace Swift { - OutgoingWhiteboardSession::OutgoingWhiteboardSession(const JID& jid, IQRouter* router) : WhiteboardSession(jid, router) { - } - - OutgoingWhiteboardSession::~OutgoingWhiteboardSession() { - } - - void OutgoingWhiteboardSession::startSession() { - boost::shared_ptr<WhiteboardPayload> payload = boost::make_shared<WhiteboardPayload>(WhiteboardPayload::SessionRequest); - boost::shared_ptr<GenericRequest<WhiteboardPayload> > request = boost::make_shared<GenericRequest<WhiteboardPayload> >(IQ::Set, toJID_, payload, router_); - request->onResponse.connect(boost::bind(&OutgoingWhiteboardSession::handleRequestResponse, this, _1, _2)); - request->send(); - } - - void OutgoingWhiteboardSession::handleRequestResponse(boost::shared_ptr<WhiteboardPayload> /*payload*/, ErrorPayload::ref error) { - if (error) { - onRequestRejected(toJID_); - } - } - - void OutgoingWhiteboardSession::handleIncomingOperation(WhiteboardOperation::ref operation) { - WhiteboardOperation::ref op = server.handleClientOperationReceived(operation); - if (op->getPos() != -1) { - onOperationReceived(op); - } - lastOpID = op->getID(); - - WhiteboardPayload::ref payload = boost::make_shared<WhiteboardPayload>(); - payload->setOperation(op); - sendPayload(payload); - } - - void OutgoingWhiteboardSession::sendOperation(WhiteboardOperation::ref operation) { - operation->setID(idGenerator.generateID()); - operation->setParentID(lastOpID); - lastOpID = operation->getID(); - - server.handleLocalOperationReceived(operation); - WhiteboardPayload::ref payload = boost::make_shared<WhiteboardPayload>(); - payload->setOperation(operation); - sendPayload(payload); - } + OutgoingWhiteboardSession::OutgoingWhiteboardSession(const JID& jid, IQRouter* router) : WhiteboardSession(jid, router) { + } + + OutgoingWhiteboardSession::~OutgoingWhiteboardSession() { + } + + void OutgoingWhiteboardSession::startSession() { + std::shared_ptr<WhiteboardPayload> payload = std::make_shared<WhiteboardPayload>(WhiteboardPayload::SessionRequest); + std::shared_ptr<GenericRequest<WhiteboardPayload> > request = std::make_shared<GenericRequest<WhiteboardPayload> >(IQ::Set, toJID_, payload, router_); + request->onResponse.connect(boost::bind(&OutgoingWhiteboardSession::handleRequestResponse, this, _1, _2)); + request->send(); + } + + void OutgoingWhiteboardSession::handleRequestResponse(std::shared_ptr<WhiteboardPayload> /*payload*/, ErrorPayload::ref error) { + if (error) { + onRequestRejected(toJID_); + } + } + + void OutgoingWhiteboardSession::handleIncomingOperation(WhiteboardOperation::ref operation) { + WhiteboardOperation::ref op = server.handleClientOperationReceived(operation); + if (op->getPos() != -1) { + onOperationReceived(op); + } + lastOpID = op->getID(); + + WhiteboardPayload::ref payload = std::make_shared<WhiteboardPayload>(); + payload->setOperation(op); + sendPayload(payload); + } + + void OutgoingWhiteboardSession::sendOperation(WhiteboardOperation::ref operation) { + operation->setID(idGenerator.generateID()); + operation->setParentID(lastOpID); + lastOpID = operation->getID(); + + server.handleLocalOperationReceived(operation); + WhiteboardPayload::ref payload = std::make_shared<WhiteboardPayload>(); + payload->setOperation(operation); + sendPayload(payload); + } } |