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