From: bdemsky Date: Fri, 19 Jan 2018 06:28:16 +0000 (-0800) Subject: edits X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6213bed193915fc9a036ee72c04559cdab41c1d4;p=iotcloud.git edits --- diff --git a/version2/src/C/CommitPart.cc b/version2/src/C/CommitPart.cc index 1394f32..c0d50fa 100644 --- a/version2/src/C/CommitPart.cc +++ b/version2/src/C/CommitPart.cc @@ -1,122 +1,101 @@ +#include "CommitPart.h" + + +CommitPart::CommitPart(Slot* s, int64_t _machineId, int64_t _sequenceNumber, int64_t _transactionSequenceNumber, int _partNumber, Array* _data, bool _isLastPart) : + Entry(s), + machineId(_machineId), + sequenceNumber(_sequenceNumber), + transactionSequenceNumber(_transactionSequenceNumber), + partNumber(_partNumber), + isLastPart(_isLastPart), + data(_data), + partId(new Pair(sequenceNumber, partNumber)), + commitId(new Pair(machineId, sequenceNumber)) { +} - - - -class CommitPart extends Entry { - - // Max size of the part excluding the fixed size header - static final int MAX_NON_HEADER_SIZE = 512; - - - // Sequence number of the transaction this commit is for, -1 if not a cloud transaction - int64_t machineId = -1; // Machine Id of the device that made the commit - int64_t sequenceNumber = -1; // commit sequence number for this arbitrator - int64_t transactionSequenceNumber = -1; - int partNumber = -1; // Parts position in the - bool isLastPart = false; - char[] data = NULL; - - Pair partId = NULL; - Pair commitId = NULL; - - - CommitPart(Slot s, int64_t _machineId, int64_t _sequenceNumber, int64_t _transactionSequenceNumber, int _partNumber, char[] _data, bool _isLastPart) { - super(s); - machineId = _machineId; - sequenceNumber = _sequenceNumber; - transactionSequenceNumber = _transactionSequenceNumber; - partNumber = _partNumber; - isLastPart = _isLastPart; - data = _data; - - partId = new Pair(sequenceNumber, partNumber); - commitId = new Pair(machineId, sequenceNumber); - } - - int getSize() { - if (data == NULL) { - return (3 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char)); - } - return (3 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char)) + data.length; - } - - void setSlot(Slot s) { - parentslot = s; - } - - int getPartNumber() { - return partNumber; +int CommitPart::getSize() { + if (data == NULL) { + return (3 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char)); } + return (3 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char)) + data->length(); +} - int getDataSize() { - return data.length; - } +void CommitPart::setSlot(Slot s) { + parentslot = s; +} - char[] getData() { - return data; - } +int CommitPart::getPartNumber() { + return partNumber; +} - Pair getPartId() { - return partId; - } +int CommitPart::getDataSize() { + return data->length(); +} - Pair getCommitId() { - return commitId; - } +Array * CommitPart::getData() { + return data; +} - bool isLastPart() { - return isLastPart; - } +Pair * CommitPart::getPartId() { + return partId; +} - int64_t getMachineId() { - return machineId; - } +Pair *CommitPart::getCommitId() { + return commitId; +} - int64_t getTransactionSequenceNumber() { - return transactionSequenceNumber; - } +bool CommitPart::isLastPart() { + return isLastPart; +} - int64_t getSequenceNumber() { - return sequenceNumber; - } +int64_t CommitPart::getMachineId() { + return machineId; +} - static Entry decode(Slot s, ByteBuffer bb) { - int64_t machineId = bb->getLong(); - int64_t sequenceNumber = bb->getLong(); - int64_t transactionSequenceNumber = bb->getLong(); - int partNumber = bb->getInt(); - int dataSize = bb->getInt(); - bool isLastPart = bb->get() == 1; +int64_t CommitPart::getTransactionSequenceNumber() { + return transactionSequenceNumber; +} - // Get the data - char[] data = new char[dataSize]; - bb->get(data); +int64_t CommitPart::getSequenceNumber() { + return sequenceNumber; +} - return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, data, isLastPart); - } +Entry* CommitPart_decode(Slot* s, ByteBuffer* bb) { + int64_t machineId = bb->getLong(); + int64_t sequenceNumber = bb->getLong(); + int64_t transactionSequenceNumber = bb->getLong(); + int partNumber = bb->getInt(); + int dataSize = bb->getInt(); + bool isLastPart = bb->get() == 1; + + // Get the data + Array * data = new Array(dataSize); + bb->get(data); + + return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, data, isLastPart); +} - void encode(ByteBuffer bb) { - bb->put(Entry.TypeCommitPart); - bb->putLong(machineId); - bb->putLong(sequenceNumber); - bb->putLong(transactionSequenceNumber); - bb->putInt(partNumber); - bb->putInt(data.length); - - if (isLastPart) { - bb->put((char)1); - } else { - bb->put((char)0); - } - - bb->put(data); - } +void CommitPart::encode(ByteBuffer bb) { + bb->put(TypeCommitPart); + bb->putLong(machineId); + bb->putLong(sequenceNumber); + bb->putLong(transactionSequenceNumber); + bb->putInt(partNumber); + bb->putInt(data.length); + + if (isLastPart) { + bb->put((char)1); + } else { + bb->put((char)0); + } + + bb->put(data); +} - char getType() { - return Entry.TypeCommitPart; - } +char CommitPart::getType() { + return TypeCommitPart; +} - Entry getCopy(Slot s) { - return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, data, isLastPart); - } +Entry *CommitPart::getCopy(Slot *s) { + return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, data, isLastPart); } diff --git a/version2/src/C/CommitPart.h b/version2/src/C/CommitPart.h index 32a418b..34341c7 100644 --- a/version2/src/C/CommitPart.h +++ b/version2/src/C/CommitPart.h @@ -1,122 +1,41 @@ +#ifndef COMMITPART_H +#define COMMITPART_H +#include "common.h" +#include "Entry.h" +// Max size of the part excluding the fixed size header +#define CommitPart_MAX_NON_HEADER_SIZE 512 - - -class CommitPart extends Entry { - - // Max size of the part excluding the fixed size header - public static final int MAX_NON_HEADER_SIZE = 512; - - +class CommitPart : public Entry { + private: // Sequence number of the transaction this commit is for, -1 if not a cloud transaction - private int64_t machineId = -1; // Machine Id of the device that made the commit - private int64_t sequenceNumber = -1; // commit sequence number for this arbitrator - private int64_t transactionSequenceNumber = -1; - private int partNumber = -1; // Parts position in the - private bool isLastPart = false; - private char[] data = NULL; - - private Pair partId = NULL; - private Pair commitId = NULL; - - - public CommitPart(Slot s, int64_t _machineId, int64_t _sequenceNumber, int64_t _transactionSequenceNumber, int _partNumber, char[] _data, bool _isLastPart) { - super(s); - machineId = _machineId; - sequenceNumber = _sequenceNumber; - transactionSequenceNumber = _transactionSequenceNumber; - partNumber = _partNumber; - isLastPart = _isLastPart; - data = _data; - - partId = new Pair(sequenceNumber, partNumber); - commitId = new Pair(machineId, sequenceNumber); - } - - public int getSize() { - if (data == NULL) { - return (3 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char)); - } - return (3 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char)) + data.length; - } - - public void setSlot(Slot s) { - parentslot = s; - } - - public int getPartNumber() { - return partNumber; - } - - public int getDataSize() { - return data.length; - } - - public char[] getData() { - return data; - } - - public Pair getPartId() { - return partId; - } - - public Pair getCommitId() { - return commitId; - } - - public bool isLastPart() { - return isLastPart; - } - - public int64_t getMachineId() { - return machineId; - } - - public int64_t getTransactionSequenceNumber() { - return transactionSequenceNumber; - } - - public int64_t getSequenceNumber() { - return sequenceNumber; - } - - static Entry decode(Slot s, ByteBuffer bb) { - int64_t machineId = bb->getLong(); - int64_t sequenceNumber = bb->getLong(); - int64_t transactionSequenceNumber = bb->getLong(); - int partNumber = bb->getInt(); - int dataSize = bb->getInt(); - bool isLastPart = bb->get() == 1; - - // Get the data - char[] data = new char[dataSize]; - bb->get(data); - - return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, data, isLastPart); - } - - public void encode(ByteBuffer bb) { - bb->put(Entry.TypeCommitPart); - bb->putLong(machineId); - bb->putLong(sequenceNumber); - bb->putLong(transactionSequenceNumber); - bb->putInt(partNumber); - bb->putInt(data.length); - - if (isLastPart) { - bb->put((char)1); - } else { - bb->put((char)0); - } - - bb->put(data); - } - - public char getType() { - return Entry.TypeCommitPart; - } - - public Entry getCopy(Slot s) { - return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, data, isLastPart); - } -} + int64_t machineId; // Machine Id of the device that made the commit + int64_t sequenceNumber; // commit sequence number for this arbitrator + int64_t transactionSequenceNumber; + int32_t partNumber; // Parts position in the + bool isLastPart; + Array * data; + + Pair * partId; + Pair * commitId; + + public: + CommitPart(Slot *s, int64_t _machineId, int64_t _sequenceNumber, int64_t _transactionSequenceNumber, int _partNumber, Array* _data, bool _isLastPart); + int getSize(); + void setSlot(Slot *s); + int getPartNumber(); + int getDataSize(); + Array * getData(); + Pair * getPartId(); + Pair * getCommitId(); + bool isLastPart(); + int64_t getMachineId(); + int64_t getTransactionSequenceNumber(); + int64_t getSequenceNumber(); + void encode(ByteBuffer *bb); + char getType(); + Entry* getCopy(Slot *s); +}; + +Entry * CommitPart_decode(Slot * s, ByteBuffer *bb); +#endif