9 MyVector<TransactionPart *> *parts;
11 Hashset<int32_t> *missingParts;
12 MyVector<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();
32 void addPartEncode(TransactionPart *newPart);
33 void addPartDecode(TransactionPart *newPart);
34 void addUpdateKV(KeyValue *kv);
35 void addGuardKV(KeyValue *kv);
36 int64_t getSequenceNumber();
37 void setSequenceNumber(int64_t _sequenceNumber);
38 int64_t getClientLocalSequenceNumber();
39 MyVector<TransactionPart *> *getParts();
40 bool didSendAPartToServer();
41 void resetNextPartToSend();
42 TransactionPart *getNextPartToSend();
43 void setServerFailure();
44 bool getServerFailure();
45 void resetServerFailure();
46 void setTransactionStatus(TransactionStatus *_transactionStatus);
47 TransactionStatus *getTransactionStatus();
48 void removeSentParts(MyVector<int32_t> *sentParts);
49 bool didSendAllParts();
50 Hashset<KeyValue *> *getKeyValueUpdateSet();
51 int getNumberOfParts();
52 int64_t getMachineId();
53 int64_t getArbitrator();
55 Pair<int64_t, int64_t> *getId();
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);