9 Vector<TransactionPart *> *parts;
11 Hashset<int32_t> *missingParts;
12 Vector<int32_t> *partsPendingSend;
15 Hashset<KeyValue *> *keyValueGuardSet;
16 Hashset<KeyValue *> *keyValueUpdateSet;
18 int64_t sequenceNumber;
19 int64_t clientLocalSequenceNumber;
22 Pair<int64_t, int64_t> transactionId;
23 uint32_t nextPartToSend;
24 bool flddidSendAPartToServer;
25 TransactionStatus *transactionStatus;
26 bool hadServerFailure;
27 void decodeTransactionData();
31 void addPartEncode(TransactionPart *newPart);
32 void addPartDecode(TransactionPart *newPart);
33 void addUpdateKV(KeyValue *kv);
34 void addGuardKV(KeyValue *kv);
35 int64_t getSequenceNumber();
36 void setSequenceNumber(int64_t _sequenceNumber);
37 int64_t getClientLocalSequenceNumber();
38 Vector<TransactionPart *> *getParts();
39 bool didSendAPartToServer();
40 void resetNextPartToSend();
41 TransactionPart *getNextPartToSend();
42 void setServerFailure();
43 bool getServerFailure();
44 void resetServerFailure();
45 void setTransactionStatus(TransactionStatus *_transactionStatus);
46 TransactionStatus *getTransactionStatus();
47 void removeSentParts(Vector<int32_t> *sentParts);
48 bool didSendAllParts();
49 Hashset<KeyValue *> *getKeyValueUpdateSet();
50 int getNumberOfParts();
51 int64_t getMachineId();
52 int64_t getArbitrator();
54 Pair<int64_t, int64_t> *getId();
56 TransactionPart *getPart(int32_t index);
57 bool evaluateGuard(Hashtable<IoTString *, KeyValue *, uintptr_t, 0, hashString, StringEquals> *committedKeyValueTable, Hashtable<IoTString *, KeyValue *, uintptr_t, 0, hashString, StringEquals> *speculatedKeyValueTable, Hashtable<IoTString *, KeyValue *, uintptr_t, 0, hashString, StringEquals> *pendingTransactionSpeculatedKeyValueTable);