From: bdemsky Date: Sat, 20 Jan 2018 07:09:51 +0000 (-0800) Subject: edits X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=commitdiff_plain;h=bf81ef129151ee3304cc9871daf2b2b0d678b696 edits --- diff --git a/version2/src/C/Entry.cc b/version2/src/C/Entry.cc index 538a686..097967b 100644 --- a/version2/src/C/Entry.cc +++ b/version2/src/C/Entry.cc @@ -18,22 +18,16 @@ Entry *Entry_decode(Slot *slot, ByteBuffer *bb) { char type = bb->get(); switch (type) { - case TypeCommitPart: return CommitPart_decode(slot, bb); - case TypeAbort: return Abort_decode(slot, bb); - case TypeTransactionPart: return TransactionPart_decode(slot, bb); - case TypeNewKey: return NewKey_decode(slot, bb); - case TypeLastMessage: return LastMessage_decode(slot, bb); - case TypeRejectedMessage: return RejectedMessage_decode(slot, bb); case TypeTableStatus: @@ -45,14 +39,10 @@ Entry *Entry_decode(Slot *slot, ByteBuffer *bb) { } void Entry::setDead() { - - if (!islive ) { - return; // already dead - } - - islive = false; - - if (parentslot != NULL) { - parentslot->decrementLiveCount(); + if (islive) { + islive = false; + if (parentslot != NULL) { + parentslot->decrementLiveCount(); + } } } diff --git a/version2/src/C/Entry.h b/version2/src/C/Entry.h index 363b771..1a8c4b5 100644 --- a/version2/src/C/Entry.h +++ b/version2/src/C/Entry.h @@ -46,7 +46,6 @@ public: */ virtual void encode(ByteBuffer *bb) = 0; - /** * Returns the size in chars the entry object will take in the char * array. diff --git a/version2/src/C/IoTString.h b/version2/src/C/IoTString.h index a7343db..4500a66 100644 --- a/version2/src/C/IoTString.h +++ b/version2/src/C/IoTString.h @@ -21,12 +21,16 @@ private: public: IoTString(Array *_array) : array(new Array(_array)) {} + IoTString(const char *_array) { int32_t len = strlen(_array); array = new Array(len); strcpy(array->internalArray(), _array); } + IoTString(IoTString *string) : array(new Array(string->array)) { + } + ~IoTString() { delete array; } diff --git a/version2/src/C/KeyValue.cc b/version2/src/C/KeyValue.cc index 96d740d..8aea6f2 100644 --- a/version2/src/C/KeyValue.cc +++ b/version2/src/C/KeyValue.cc @@ -7,6 +7,11 @@ * @version 1.0 */ +KeyValue::~KeyValue() { + delete key; + delete value; +} + KeyValue *KeyValue_decode(ByteBuffer *bb) { int keylength = bb->getInt(); int valuelength = bb->getInt(); @@ -24,28 +29,23 @@ KeyValue *KeyValue_decode(ByteBuffer *bb) { void KeyValue::encode(ByteBuffer *bb) { bb->putInt(key->length()); - if (value != NULL) { bb->putInt(value->length()); } else { bb->putInt(0); } - bb->put(key->internalBytes()); - if (value != NULL) { bb->put(value->internalBytes()); } } int KeyValue::getSize() { - if (value != NULL) { + if (value != NULL) return 2 * sizeof(int32_t) + key->length() + value->length(); - } - return 2 * sizeof(int32_t) + key->length(); } KeyValue *KeyValue::getCopy() { - return new KeyValue(key, value); + return new KeyValue(new IoTString(key), new IoTString(value)); } diff --git a/version2/src/C/KeyValue.h b/version2/src/C/KeyValue.h index bd384be..06f514b 100644 --- a/version2/src/C/KeyValue.h +++ b/version2/src/C/KeyValue.h @@ -18,6 +18,7 @@ public: key(_key), value(_value) { } + ~KeyValue(); IoTString *getKey() { return key; } IoTString *getValue() { return value; } diff --git a/version2/src/C/Table.cc b/version2/src/C/Table.cc index d598f15..59c049a 100644 --- a/version2/src/C/Table.cc +++ b/version2/src/C/Table.cc @@ -1103,12 +1103,9 @@ ThreeTuple *> Table::sendSlotsToServer(Slot *slot, int * Returns false if a resize was needed */ ThreeTuple Table::fillSlot(Slot *slot, bool resize, NewKey *newKeyEntry) { - - int newSize = 0; if (liveSlotCount > bufferResizeThreshold) { resize = true; //Resize is forced - } if (resize) { @@ -1177,22 +1174,14 @@ ThreeTuple Table::fillSlot(Slot *slot, bool resize, NewKey } if (pendingTransactionQueue->size() > 0) { - Transaction *transaction = pendingTransactionQueue->get(0); - // Set the transaction sequence number if it has yet to be inserted into the block chain - // if ((!transaction->didSendAPartToServer() && !transaction->getServerFailure()) || (transaction->getSequenceNumber() == -1)) { - // transaction->setSequenceNumber(slot->getSequenceNumber()); - // } - if ((!transaction->didSendAPartToServer()) || (transaction->getSequenceNumber() == -1)) { transaction->setSequenceNumber(slot->getSequenceNumber()); } - while (true) { TransactionPart *part = transaction->getNextPartToSend(); - if (part == NULL) { // Ran out of parts to send for this transaction so move on break;