/** Sequence number of the slot. */
int64_t seqnum;
/** HMAC of previous slot. */
- char *prevhmac;
+ Array<char> *prevhmac;
/** HMAC of this slot. */
- char *hmac;
+ Array<char> *hmac;
/** Machine that sent this slot. */
int64_t machineid;
/** Vector of entries in this slot. */
void addShallowEntry(Entry *e);
public:
- Slot(Table *_table, int64_t _seqnum, int64_t _machineid, char *_prevhmac, char *_hmac, int64_t _localSequenceNumber);
- Slot(Table _table, int64_t _seqnum, int64_t _machineid, char *_prevhmac, int64_t _localSequenceNumber);
- Slot(Table _table, int64_t _seqnum, int64_t _machineid, int64_t _localSequenceNumber);
+ Slot(Table *_table, int64_t _seqnum, int64_t _machineid, Array<char> *_prevhmac, Array<char> *_hmac, int64_t _localSequenceNumber);
+ Slot(Table *_table, int64_t _seqnum, int64_t _machineid, Array<char> *_prevhmac, int64_t _localSequenceNumber);
+ Slot(Table *_table, int64_t _seqnum, int64_t _machineid, int64_t _localSequenceNumber);
- char *getHMAC() { return hmac; }
- char *getPrevHMAC() { return prevhmac; }
+ Array<char> *getHMAC() { return hmac; }
+ Array<char> *getPrevHMAC() { return prevhmac; }
Entry *addEntry(Entry *e);
void removeEntry(Entry *e);
bool hasSpace(Entry *e);
Vector<Entry *> *getEntries();
- char *encode(Mac *mac);
+ Array<char> *encode(Mac *mac);
int getBaseSize() { return 2 * HMAC_SIZE + 2 * sizeof(int64_t) + sizeof(int); }
Vector<Entry *> *getLiveEntries(bool resize);
int64_t getSequenceNumber() { return seqnum; }
void setDead();
void decrementLiveCount();
bool isLive() { return livecount > 0; }
- char *getSlotCryptIV();
+ Array<char> *getSlotCryptIV();
+ friend Slot *Slotdecode(Table *table, Array<char> *array, Mac *mac);
};
-Slot *Slotdecode(Table *table, char *array, Mac *mac);
+Slot *Slotdecode(Table *table, Array<char> *array, Mac *mac);
#endif