X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=blobdiff_plain;f=version2%2Fsrc%2FC%2FArbitrationRound.cc;h=f5a1521722e444bbeff3e2d841a23dfce3e6a8c5;hp=3ddf5cb49852141d216a3f6783cf70dfdabd3e4a;hb=b2bc9b5c707bd7d932d60cd4e8c1cb580b36b5b4;hpb=3e54762d57367b1ce049830b42f00950055d8527 diff --git a/version2/src/C/ArbitrationRound.cc b/version2/src/C/ArbitrationRound.cc index 3ddf5cb..f5a1521 100644 --- a/version2/src/C/ArbitrationRound.cc +++ b/version2/src/C/ArbitrationRound.cc @@ -22,10 +22,34 @@ ArbitrationRound::~ArbitrationRound() { delete parts; } +void ArbitrationRound::generateParts() { + if (didGenerateParts) { + return; + } + parts = new Vector(); + SetIterator *abit = abortsBefore->iterator(); + while (abit->hasNext()) + parts->add((Entry *)abit->next()); + delete abit; + if (commit != NULL) { + Vector *cParts = commit->getParts(); + uint cPartsSize = cParts->size(); + for (uint i = 0; i < cPartsSize; i++) { + parts->add((Entry *)cParts->get(i)); + } + } +} + Vector *ArbitrationRound::getParts() { return parts; } +void ArbitrationRound::removeParts(Vector *removeParts) { + parts->removeAll(removeParts); + didSendPart = true; +} + + bool ArbitrationRound::isDoneSending() { if ((commit == NULL) && abortsBefore->isEmpty()) { return true;