- }
-
- int getSize() {
- if (data == NULL) {
- return (4 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char));
- }
- return (4 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char)) + data.length;
- }
-
- void setSlot(Slot s) {
- parentslot = s;
- }
-
- Pair<int64_t, int64_t> getTransactionId() {
- return transactionId;
- }
-
- int64_t getArbitratorId() {
- return arbitratorId;
- }
-
- Pair<Long, Integer> getPartId() {
- return partId;
- }
-
- int getPartNumber() {
- return partNumber;
- }
-
- int getDataSize() {
- return data.length;
- }
-
- char[] getData() {
- return data;
- }
-
- Boolean isLastPart() {
- return isLastPart;
- }
-
- int64_t getMachineId() {
- return machineId;
- }
-
- int64_t getClientLocalSequenceNumber() {
- return clientLocalSequenceNumber;
- }
-
-
- int64_t getSequenceNumber() {
- return sequenceNumber;
- }
-
- void setSequenceNumber(int64_t _sequenceNumber) {
- sequenceNumber = _sequenceNumber;
- }
-
- static Entry decode(Slot s, ByteBuffer bb) {
- int64_t sequenceNumber = bb->getLong();
- int64_t machineId = bb->getLong();
- int64_t arbitratorId = bb->getLong();
- int64_t clientLocalSequenceNumber = bb->getLong();
- int partNumber = bb->getInt();
- int dataSize = bb->getInt();
- Boolean isLastPart = (bb->get() == 1);
- // Get the data
- char[] data = new char[dataSize];
- bb->get(data);
-
- TransactionPart returnTransactionPart = new TransactionPart(s, machineId, arbitratorId, clientLocalSequenceNumber, partNumber, data, isLastPart);
- returnTransactionPart.setSequenceNumber(sequenceNumber);
-
- return returnTransactionPart;
- }
-
- void encode(ByteBuffer bb) {
- bb->put(Entry.TypeTransactionPart);
- bb->putLong(sequenceNumber);
- bb->putLong(machineId);
- bb->putLong(arbitratorId);
- bb->putLong(clientLocalSequenceNumber);
- 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.TypeTransactionPart;
- }
-
- Entry getCopy(Slot s) {
-
- TransactionPart copyTransaction = new TransactionPart(s, machineId, arbitratorId, clientLocalSequenceNumber, partNumber, data, isLastPart);
- copyTransaction.setSequenceNumber(sequenceNumber);
-
- return copyTransaction;
- }