/* * Copyright (c) 2012 Mateusz Piękos * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #include #include #include #include #include namespace Swift { IncomingWhiteboardSession::IncomingWhiteboardSession(const JID& jid, IQRouter* router) : WhiteboardSession(jid, router) { } IncomingWhiteboardSession::~IncomingWhiteboardSession() { } void IncomingWhiteboardSession::accept() { boost::shared_ptr payload = boost::make_shared(WhiteboardPayload::SessionAccept); boost::shared_ptr > request = boost::make_shared >(IQ::Set, toJID_, payload, router_); request->send(); } std::string IncomingWhiteboardSession::getClientID() const { return "b"; } void IncomingWhiteboardSession::handleIncomingOperation(WhiteboardOperation::ref operation) { // std::cout << "incoming pos: " << operation->getPos() << std::endl; // WhiteboardInsertOperation::ref insertOp = boost::dynamic_pointer_cast(operation); WhiteboardOperation::ref op = server.handleClientOperationReceived(operation); /* server.print(); std::cout << "in1: " << operation->getID() << " " << operation->getPos() << " " << operation->getParentID() << std::endl; // std::cout << "sin2: " << op->getID() << " " << op->getPos() << " " << op->getParentID() << std::endl; //std::cout << "in1: " << operation->getID() << " " << operation->getPos() << " " << operation->getParentID() << std::endl; WhiteboardInsertOperation::ref insertOp = boost::dynamic_pointer_cast(op); if (insertOp) { std::cout << "iin2: " << insertOp->getID() << " " << insertOp->getPos() << " " << insertOp->getParentID() << std::endl; } WhiteboardUpdateOperation::ref updateOp = boost::dynamic_pointer_cast(op); if (updateOp) { std::cout << "uin2: " << updateOp->getID() << " " << updateOp->getPos() << " " << updateOp->getParentID() << std::endl; } WhiteboardDeleteOperation::ref deleteOp = boost::dynamic_pointer_cast(op); if (deleteOp) { std::cout << "din2: " << deleteOp->getID() << " " << deleteOp->getPos() << " " << deleteOp->getParentID() << std::endl; }*/ onOperationReceived(op); WhiteboardPayload::ref payload = boost::make_shared(); payload->setOperation(op); sendPayload(payload); } void IncomingWhiteboardSession::sendOperation(WhiteboardOperation::ref operation) { // std::cout << "out: " << operation->getID() << " " << operation->getPos() << " " << operation->getParentID()<< std::endl; /* WhiteboardInsertOperation::ref insertOp = boost::dynamic_pointer_cast(operation); if (insertOp) { std::cout << "iout: " << insertOp->getID() << " " << insertOp->getPos() << " " << insertOp->getParentID() << std::endl; } WhiteboardUpdateOperation::ref updateOp = boost::dynamic_pointer_cast(operation); if (updateOp) { std::cout << "uout: " << updateOp->getID() << " " << updateOp->getPos() << " " << updateOp->getParentID() << std::endl; } WhiteboardDeleteOperation::ref deleteOp = boost::dynamic_pointer_cast(operation); if (deleteOp) { std::cout << "dout: " << deleteOp->getID() << " " << deleteOp->getPos() << " " << deleteOp->getParentID() << std::endl; } */ server.handleLocalOperationReceived(operation); WhiteboardPayload::ref payload = boost::make_shared(); payload->setOperation(operation); sendPayload(payload); } }