From: bdemsky Date: Sat, 20 Jan 2018 07:40:24 +0000 (-0800) Subject: edits X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=commitdiff_plain;h=64a2b437d6d5970beca0b179c6043ebcb7f1b4b5 edits --- diff --git a/version2/src/C/CloudComm.cc b/version2/src/C/CloudComm.cc index 9a15732..54b92da 100644 --- a/version2/src/C/CloudComm.cc +++ b/version2/src/C/CloudComm.cc @@ -4,6 +4,7 @@ #include "IoTString.h" #include "Error.h" #include "URL.h" +#include "Mac.h" /** * Empty Constructor needed for child class. diff --git a/version2/src/C/PendingTransaction.cc b/version2/src/C/PendingTransaction.cc index 088238e..be7575f 100644 --- a/version2/src/C/PendingTransaction.cc +++ b/version2/src/C/PendingTransaction.cc @@ -14,12 +14,16 @@ PendingTransaction::PendingTransaction(int64_t _machineId) : currentDataSize(0) { } +PendingTransaction::~PendingTransaction() { + delete keyValueUpdateSet; + delete keyValueGuardSet; +} + /** * Add a new key value to the updates * */ void PendingTransaction::addKV(KeyValue *newKV) { - KeyValue *rmKV = NULL; // Make sure there are no duplicates @@ -27,7 +31,6 @@ void PendingTransaction::addKV(KeyValue *newKV) { while (kvit->hasNext()) { KeyValue *kv = kvit->next(); if (kv->getKey()->equals(newKV->getKey())) { - // Remove key if we are adding a newer version of the same key rmKV = kv; break; @@ -64,7 +67,6 @@ bool PendingTransaction::checkArbitrator(int64_t arb) { arbitrator = arb; return true; } - return arb == arbitrator; } @@ -72,21 +74,21 @@ bool PendingTransaction::evaluateGuard(Hashtable *keyVa SetIterator *kvit = keyValueGuardSet->iterator(); while (kvit->hasNext()) { KeyValue *kvGuard = kvit->next(); - - // First check if the key is in the speculative table, this is the value of the latest assumption + // First check if the key is in the speculative table, this is the + // value of the latest assumption KeyValue *kv = keyValTablePendingTransSpeculative->get(kvGuard->getKey()); if (kv == NULL) { - // if it is not in the pending trans table then check the speculative table and use that - // value as our latest assumption + // if it is not in the pending trans table then check the + // speculative table and use that value as our latest assumption kv = keyValTableSpeculative->get(kvGuard->getKey()); } if (kv == NULL) { - // if it is not in the speculative table then check the committed table and use that - // value as our latest assumption + // if it is not in the speculative table then check the + // committed table and use that value as our latest assumption kv = keyValTableCommitted->get(kvGuard->getKey()); } @@ -114,18 +116,15 @@ Transaction *PendingTransaction::createTransaction() { Array *charData = convertDataToBytes(); int currentPosition = 0; - int remaining = charData->length(); - - while (remaining > 0) { - + for(int remaining = charData->length(); remaining > 0;) { bool isLastPart = false; // determine how much to copy int copySize = TransactionPart_MAX_NON_HEADER_SIZE; if (remaining <= TransactionPart_MAX_NON_HEADER_SIZE) { copySize = remaining; - isLastPart = true;// last bit of data so last part + isLastPart = true;//last bit of data so last part } - + // Copy to a smaller version Array *partData = new Array(copySize); System_arraycopy(charData, currentPosition, partData, 0, copySize); @@ -188,4 +187,3 @@ Array *PendingTransaction::convertDataToBytes() { return bbEncode->array(); } - diff --git a/version2/src/C/Slot.cc b/version2/src/C/Slot.cc index ea698cc..3f75226 100644 --- a/version2/src/C/Slot.cc +++ b/version2/src/C/Slot.cc @@ -5,6 +5,7 @@ #include "CloudComm.h" #include "Table.h" #include "LastMessage.h" +#include "Mac.h" Slot::Slot(Table *_table, int64_t _seqnum, int64_t _machineid, Array *_prevhmac, Array *_hmac, int64_t _localSequenceNumber) : seqnum(_seqnum), @@ -78,8 +79,8 @@ Vector *Slot::getEntries() { return entries; } -Slot *Slotdecode(Table *table, Array *array, Mac *mac) { - mac->update(array, HMAC_SIZE, array.length - HMAC_SIZE); +Slot *Slot_decode(Table *table, Array *array, Mac *mac) { + mac->update(array, HMAC_SIZE, array->length() - HMAC_SIZE); Array *realmac = mac->doFinal(); ByteBuffer *bb = ByteBuffer_wrap(array); @@ -111,11 +112,12 @@ Array *Slot::encode(Mac *mac) { bb->putLong(seqnum); bb->putLong(machineid); bb->putInt(entries->size()); - for (Entry *entry : entries) { + for(uint ei=0; ei < entries->size(); ei++) { + Entry * entry = entries->get(ei); entry->encode(bb); } /* Compute our HMAC */ - mac->update(array, HMAC_SIZE, array.length - HMAC_SIZE); + mac->update(array, HMAC_SIZE, array->length() - HMAC_SIZE); Array *realmac = mac->doFinal(); hmac = realmac; bb->position(0); @@ -132,7 +134,8 @@ Array *Slot::encode(Mac *mac) { Vector *Slot::getLiveEntries(bool resize) { Vector *liveEntries = new Vector(); - for (Entry *entry : entries) { + for(uint ei=0; ei < entries->size(); ei++) { + Entry * entry = entries->get(ei); if (entry->isLive()) { if (!resize || entry->getType() != TypeTableStatus) liveEntries->add(entry); diff --git a/version2/src/C/Slot.h b/version2/src/C/Slot.h index b46e2ab..9085b3d 100644 --- a/version2/src/C/Slot.h +++ b/version2/src/C/Slot.h @@ -4,7 +4,6 @@ #include "common.h" #include "Liveness.h" - #define SLOT_SIZE 2048 #define HMAC_SIZE 32 @@ -53,8 +52,8 @@ public: void decrementLiveCount(); bool isLive() { return livecount > 0; } Array *getSlotCryptIV(); - friend Slot *Slotdecode(Table *table, Array *array, Mac *mac); + friend Slot *Slot_decode(Table *table, Array *array, Mac *mac); }; -Slot *Slotdecode(Table *table, Array *array, Mac *mac); +Slot *Slot_decode(Table *table, Array *array, Mac *mac); #endif diff --git a/version2/src/C/common.h b/version2/src/C/common.h index e7b4acd..a32c1d9 100644 --- a/version2/src/C/common.h +++ b/version2/src/C/common.h @@ -57,4 +57,5 @@ class Thread; class DataInputStream; class URL; class Random; +class Key; #endif