+++ /dev/null
-#include "CommitPart.h"
-#include "ByteBuffer.h"
-
-CommitPart::CommitPart(Slot *s, int64_t _machineId, int64_t _sequenceNumber, int64_t _transactionSequenceNumber, int _partNumber, Array<char> *_data, bool _isLastPart) :
- Entry(s),
- machineId(_machineId),
- sequenceNumber(_sequenceNumber),
- transactionSequenceNumber(_transactionSequenceNumber),
- partNumber(_partNumber),
- fldisLastPart(_isLastPart),
- refCount(1),
- data(_data),
- partId(Pair<int64_t, int32_t>(sequenceNumber, partNumber)),
- commitId(Pair<int64_t, int64_t>(machineId, sequenceNumber)) {
-}
-
-CommitPart::~CommitPart() {
- delete data;
-}
-
-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 CommitPart::getPartNumber() {
- return partNumber;
-}
-
-int CommitPart::getDataSize() {
- return data->length();
-}
-
-Array<char> *CommitPart::getData() {
- return data;
-}
-
-Pair<int64_t, int32_t> * CommitPart::getPartId() {
- return & partId;
-}
-
-Pair<int64_t, int64_t> CommitPart::getCommitId() {
- return commitId;
-}
-
-bool CommitPart::isLastPart() {
- return fldisLastPart;
-}
-
-int64_t CommitPart::getMachineId() {
- return machineId;
-}
-
-int64_t CommitPart::getTransactionSequenceNumber() {
- return transactionSequenceNumber;
-}
-
-int64_t CommitPart::getSequenceNumber() {
- return sequenceNumber;
-}
-
-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<char> *data = new Array<char>(dataSize);
- bb->get(data);
-
- return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, data, isLastPart);
-}
-
-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 (fldisLastPart) {
- bb->put((char)1);
- } else {
- bb->put((char)0);
- }
-
- bb->put(data);
-}
-
-char CommitPart::getType() {
- return TypeCommitPart;
-}
-
-Entry *CommitPart::getCopy(Slot *s) {
- return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, new Array<char>(data), fldisLastPart);
-}