class Transaction {
private:
- Hashtable<int32_t, TransactionPart *> *parts;
+ Vector<TransactionPart *> *parts;
+ uint partCount;
Hashset<int32_t> *missingParts;
Vector<int32_t> *partsPendingSend;
bool fldisComplete;
int64_t clientLocalSequenceNumber;
int64_t arbitratorId;
int64_t machineId;
- Pair<int64_t, int64_t> *transactionId;
+ Pair<int64_t, int64_t> transactionId;
int nextPartToSend;
bool flddidSendAPartToServer;
TransactionStatus *transactionStatus;
int64_t getSequenceNumber();
void setSequenceNumber(int64_t _sequenceNumber);
int64_t getClientLocalSequenceNumber();
- Hashtable<int32_t, TransactionPart *> *getParts();
+ Vector<TransactionPart *> *getParts();
bool didSendAPartToServer();
void resetNextPartToSend();
TransactionPart *getNextPartToSend();
int64_t getMachineId();
int64_t getArbitrator();
bool isComplete();
- Pair<int64_t, int64_t> *getId();
+ Pair<int64_t, int64_t> * getId();
void setDead();
TransactionPart *getPart(int32_t index);
bool evaluateGuard(Hashtable<IoTString *, KeyValue *> *committedKeyValueTable, Hashtable<IoTString *, KeyValue *> *speculatedKeyValueTable, Hashtable<IoTString *, KeyValue *> *pendingTransactionSpeculatedKeyValueTable);