1 #include "TransactionPart.h"
2 #include "ByteBuffer.h"
4 int TransactionPart::getSize() {
6 return (4 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char));
8 return (4 * sizeof(int64_t)) + (2 * sizeof(int32_t)) + (2 * sizeof(char)) + data->length();
11 void TransactionPart::setSlot(Slot *s) {
15 Pair<int64_t, int64_t> *TransactionPart::getTransactionId() {
19 int64_t TransactionPart::getArbitratorId() {
23 Pair<int64_t, int32_t> *TransactionPart::getPartId() {
27 int TransactionPart::getPartNumber() {
31 int TransactionPart::getDataSize() {
32 return data->length();
35 Array<char> *TransactionPart::getData() {
39 bool TransactionPart::isLastPart() {
43 int64_t TransactionPart::getMachineId() {
47 int64_t TransactionPart::getClientLocalSequenceNumber() {
48 return clientLocalSequenceNumber;
51 int64_t TransactionPart::getSequenceNumber() {
52 return sequenceNumber;
55 void TransactionPart::setSequenceNumber(int64_t _sequenceNumber) {
56 sequenceNumber = _sequenceNumber;
59 Entry *TransactionPart_decode(Slot *s, ByteBuffer *bb) {
60 int64_t sequenceNumber = bb->getLong();
61 int64_t machineId = bb->getLong();
62 int64_t arbitratorId = bb->getLong();
63 int64_t clientLocalSequenceNumber = bb->getLong();
64 int partNumber = bb->getInt();
65 int dataSize = bb->getInt();
66 bool isLastPart = (bb->get() == 1);
68 Array<char> *data = new Array<char>(dataSize);
71 TransactionPart * returnTransactionPart = new TransactionPart(s, machineId, arbitratorId, clientLocalSequenceNumber, partNumber, data, isLastPart);
72 returnTransactionPart->setSequenceNumber(sequenceNumber);
74 return returnTransactionPart;
77 void TransactionPart::encode(ByteBuffer *bb) {
78 bb->put(TypeTransactionPart);
79 bb->putLong(sequenceNumber);
80 bb->putLong(machineId);
81 bb->putLong(arbitratorId);
82 bb->putLong(clientLocalSequenceNumber);
83 bb->putInt(partNumber);
84 bb->putInt(data->length());
95 char TransactionPart::getType() {
96 return TypeTransactionPart;
99 Entry *TransactionPart::getCopy(Slot *s) {
100 TransactionPart *copyTransaction = new TransactionPart(s, machineId, arbitratorId, clientLocalSequenceNumber, partNumber, data, fldisLastPart);
101 copyTransaction->setSequenceNumber(sequenceNumber);
103 return copyTransaction;