summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Whiteboard/WhiteboardClient.cpp')
-rw-r--r--Swiften/Whiteboard/WhiteboardClient.cpp22
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() {