int64_t clientLocalSequenceNumber; // Sequence number of the transaction that this is a part of
int32_t partNumber; // Parts position in the
bool fldisLastPart;
-
+ int32_t refCount;
Pair<int64_t, int64_t> transactionId;
Pair<int64_t, int32_t> partId;
Array<char> *data;
-
+
public:
TransactionPart(Slot *s, int64_t _machineId, int64_t _arbitratorId, int64_t _clientLocalSequenceNumber, int _partNumber, Array<char> *_data, bool _isLastPart) : Entry(s),
sequenceNumber(-1),
clientLocalSequenceNumber(_clientLocalSequenceNumber),
partNumber(_partNumber),
fldisLastPart(_isLastPart),
+ refCount(1),
transactionId(Pair<int64_t, int64_t>(machineId, clientLocalSequenceNumber)),
partId(Pair<int64_t, int32_t>(clientLocalSequenceNumber, partNumber)),
data(_data) {
void setSequenceNumber(int64_t _sequenceNumber);
void encode(ByteBuffer *bb);
char getType();
+ void releaseRef() {if ((--refCount)==0) delete this;}
+ void acquireRef() {refCount++;}
Entry *getCopy(Slot *s);
};