#include "common.h"
class PendingTransaction {
- private:
- Hashset<KeyValue*> * keyValueUpdateSet = NULL;
- Hashset<KeyValue*> * keyValueGuardSet = NULL;
- int64_t arbitrator = -1;
- int64_t clientLocalSequenceNumber = -1;
- int64_t machineId = -1;
- int32_T currentDataSize = 0;
-
- public:
+private:
+ Hashset<KeyValue *> *keyValueUpdateSet;
+ Hashset<KeyValue *> *keyValueGuardSet;
+ int64_t arbitrator;
+ int64_t clientLocalSequenceNumber;
+ int64_t machineId;
+ int32_t currentDataSize;
+
+public:
PendingTransaction(int64_t _machineId);
+ ~PendingTransaction();
/**
* Add a new key value to the updates
*
*/
- void addKV(KeyValue newKV);
+ void addKV(KeyValue *newKV);
/**
* Add a new key value to the guard set
*
*/
- void addKVGuard(KeyValue newKV);
+ void addKVGuard(KeyValue *newKV);
/**
* Checks if the arbitrator is the same
*/
/**
* Get the transaction arbitrator
*/
- int64_t getArbitrator();
+ int64_t getArbitrator() {return arbitrator;}
/**
* Get the key value update set
*/
- Hashset<KeyValue*> * getKVUpdates() { return keyValueUpdateSet; }
+ Hashset<KeyValue *> *getKVUpdates() { return keyValueUpdateSet; }
/**
* Get the key value update set
*/
- public Hashset<KeyValue *> * getKVGuard() { return keyValueGuardSet; }
+ Hashset<KeyValue *> *getKVGuard() { return keyValueGuardSet; }
void setClientLocalSequenceNumber(int64_t _clientLocalSequenceNumber) { clientLocalSequenceNumber = _clientLocalSequenceNumber; }
int64_t getMachineId() { return machineId; }
- bool evaluateGuard(Hashtable<IoTString *, KeyValue *> keyValTableCommitted, Hashtable<IoTString *, KeyValue *> keyValTableSpeculative, Hashtable<IoTString *, KeyValue *> keyValTablePendingTransSpeculative);
+ bool evaluateGuard(Hashtable<IoTString *, KeyValue *> *keyValTableCommitted, Hashtable<IoTString *, KeyValue *> *keyValTableSpeculative, Hashtable<IoTString *, KeyValue *> *keyValTablePendingTransSpeculative);
- Transaction * createTransaction();
+ Transaction *createTransaction();
- Array<char> * convertDataToBytes();
+ Array<char> *convertDataToBytes();
};
#endif