8 Vector<CommitPart *> *parts;
10 Hashset<int32_t> *missingParts;
13 Hashset<KeyValue *, uintptr_t, 0> *keyValueUpdateSet;
15 int64_t sequenceNumber;
17 int64_t transactionSequenceNumber;
18 Hashset<IoTString *> *liveKeys;
19 Array<char> *dataBytes;
20 Array<char> *convertDataToBytes();
21 void setKVsMap(Hashset<KeyValue *, uintptr_t, 0, hashKeyValue, KeyValueEquals> *newKVs);
25 Commit(int64_t _sequenceNumber, int64_t _machineId, int64_t _transactionSequenceNumber);
27 void addPartDecode(CommitPart *newPart);
28 int64_t getSequenceNumber();
29 int64_t getTransactionSequenceNumber();
30 Vector<CommitPart *> *getParts();
31 void addKV(KeyValue *kv);
32 void invalidateKey(IoTString *key);
33 Hashset<KeyValue *, uintptr_t, 0> *getKeyValueUpdateSet();
34 int32_t getNumberOfParts();
35 int64_t getMachineId() { return machineId; }
36 bool isComplete() { return fldisComplete; }
37 bool isLive() { return !isDead; }
39 void createCommitParts();
40 void decodeCommitData();
41 friend Commit *Commit_merge(Commit *newer, Commit *older, int64_t newSequenceNumber);
44 Commit *Commit_merge(Commit *newer, Commit *older, int64_t newSequenceNumber);