#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),
partNumber(_partNumber),
fldisLastPart(_isLastPart),
data(_data),
- partId(new Pair<int64_t int32_t>(sequenceNumber, partNumber)),
- commitId(new Pair<int64_t, int64_t>(machineId, sequenceNumber)) {
+ partId(Pair<int64_t, int32_t>(sequenceNumber, partNumber)),
+ commitId(Pair<int64_t, int64_t>(machineId, sequenceNumber)) {
+}
+
+CommitPart::~CommitPart() {
+ delete data;
}
int CommitPart::getSize() {
return (3 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char)) + data->length();
}
-void CommitPart::setSlot(Slot s) {
+void CommitPart::setSlot(Slot *s) {
parentslot = s;
}
return data;
}
-Pair<int64_t int32_t> *CommitPart::getPartId() {
+Pair<int64_t, int32_t> CommitPart::getPartId() {
return partId;
}
-Pair<int64_t, int64_t> *CommitPart::getCommitId() {
+Pair<int64_t, int64_t> CommitPart::getCommitId() {
return commitId;
}
return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, data, isLastPart);
}
-void CommitPart::encode(ByteBuffer bb) {
+void CommitPart::encode(ByteBuffer *bb) {
bb->put(TypeCommitPart);
bb->putLong(machineId);
bb->putLong(sequenceNumber);
bb->putLong(transactionSequenceNumber);
bb->putInt(partNumber);
- bb->putInt(data.length);
+ bb->putInt(data->length());
if (fldisLastPart) {
bb->put((char)1);
}
Entry *CommitPart::getCopy(Slot *s) {
- return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, data, fldisLastPart);
+ return new CommitPart(s, machineId, sequenceNumber, transactionSequenceNumber, partNumber, new Array<char>(data), fldisLastPart);
}