#include "common.h"
#include "Pair.h"
#include "ThreeTuple.h"
+#include "IoTString.h"
+
/**
* IoTTable data structure. Provides client interface.
* @author Brian Demsky
Hashtable<IoTString *, NewKey *> *liveNewKeyTable; // Table of live new keys
Hashtable<int64_t, Pair<int64_t, Liveness *> *> *lastMessageTable; // Last message sent by a client machine id -> (Seq Num, Slot or LastMessage);
Hashtable<int64_t, Hashset<RejectedMessage *> *> *rejectedMessageWatchVectorTable; // Table of machine Ids and the set of rejected messages they have not seen yet
- Hashtable<IoTString *, int64_t> *arbitratorTable;// Table of keys and their arbitrators
+ Hashtable<IoTString *, int64_t, uintptr_t, 0, hashString, StringEquals> *arbitratorTable;// Table of keys and their arbitrators
Hashtable<Pair<int64_t, int64_t> *, Abort *, uintptr_t, 0, pairHashFunction, pairEquals> *liveAbortTable;// Table live abort messages
Hashtable<int64_t, Hashtable<Pair<int64_t, int32_t> *, TransactionPart *, uintptr_t, 0, pairHashFunction, pairEquals> *> *newTransactionParts; // transaction parts that are seen in this latest round of slots from the server
Hashtable<int64_t, Hashtable<Pair<int64_t, int32_t> *, CommitPart *, uintptr_t, 0, pairHashFunction, pairEquals> *> *newCommitParts; // commit parts that are seen in this latest round of slots from the server
public:
Table(IoTString *baseurl, IoTString *password, int64_t _localMachineId, int listeningPort);
Table(CloudComm *_cloud, int64_t _localMachineId);
+ ~Table();
/**
* Initialize the table by inserting a table status as the first entry into the table status