diff options
Diffstat (limited to 'Swiften/Whiteboard/WhiteboardClient.cpp')
-rw-r--r-- | Swiften/Whiteboard/WhiteboardClient.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/Swiften/Whiteboard/WhiteboardClient.cpp b/Swiften/Whiteboard/WhiteboardClient.cpp index 447e5de..9610247 100644 --- a/Swiften/Whiteboard/WhiteboardClient.cpp +++ b/Swiften/Whiteboard/WhiteboardClient.cpp @@ -31,15 +31,17 @@ namespace Swift { } } - std::pair<WhiteboardOperation::ref, WhiteboardOperation::ref> WhiteboardClient::handleServerOperationReceived(WhiteboardOperation::ref operation) { + WhiteboardClient::Result WhiteboardClient::handleServerOperationReceived(WhiteboardOperation::ref operation) { serverOperations_.push_back(operation); - WhiteboardOperation::ref clientOp; - WhiteboardOperation::ref serverOp; +// WhiteboardOperation::ref clientOp; +// WhiteboardOperation::ref serverOp; + Result result; // if (localOperations_.empty()) {// || localOperations_.back()->getID() == operation->getParentID()) { //Situation where client and server are in sync if (localOperations_.size() == serverOperations_.size()-1) { localOperations_.push_back(operation); - clientOp = operation; +// clientOp = operation; + result.client = operation; } else if (lastSentOperationID_ == operation->getID()) { //Client received confirmation about own operation and it sends next operation to server if (bridge_.size() > 0 && lastSentOperationID_ == bridge_.front()->getID()) { @@ -57,11 +59,11 @@ namespace Swift { if (bridge_.size() > 0 && (bridge_.front())->getParentID() == lastSentOperationID_) { lastSentOperationID_ = (bridge_.front())->getID(); - serverOp = bridge_.front(); - serverOp->setOrigin(WhiteboardOperation::Other); + result.server = bridge_.front(); + result.server->setOrigin(WhiteboardOperation::Other); } - if (!serverOp) { + if (!result.server) { lastSentOperationID_.clear(); } } else { @@ -85,7 +87,7 @@ namespace Swift { temp->setParentID(localOperations_.back()->getID()); localOperations_.push_back(temp); - clientOp = temp; + result.client = temp; } else { //doesn't get executed std::list<WhiteboardOperation::ref>::reverse_iterator it; @@ -102,7 +104,7 @@ namespace Swift { bridge_.push_back(opPair.second); if (it == localOperations_.rbegin()) { localOperations_.push_back(temp); - clientOp = temp; + result.client = temp; end = true; break; } else { @@ -116,7 +118,7 @@ namespace Swift { } } - return std::pair<WhiteboardOperation::ref, WhiteboardOperation::ref>(clientOp, serverOp); + return result; } void WhiteboardClient::print() { |