--- /dev/null
+#include "Entry.h"
+
+/**
+ * Generic class that wraps all the different types of information
+ * that can be stored in a Slot.
+ * @author Brian Demsky <bdemsky@uci.edu>
+ * @version 1.0
+ */
+
+Entry * Entry_decode(Slot * slot, ByteBuffer * bb) {
+ char type = bb.get();
+ switch (type) {
+
+ case TypeCommitPart:
+ return CommitPart_decode(slot, bb);
+
+ case TypeAbort:
+ return Abort_decode(slot, bb);
+
+ case TypeTransactionPart:
+ return TransactionPart_decode(slot, bb);
+
+ case TypeNewKey:
+ return NewKey_decode(slot, bb);
+
+ case TypeLastMessage:
+ return LastMessage_decode(slot, bb);
+
+ case TypeRejectedMessage:
+ return RejectedMessage_decode(slot, bb);
+
+ case TypeTableStatus:
+ return TableStatus_decode(slot, bb);
+
+ default:
+ ASSERT(0);
+ }
+}
+
+void Entry::setDead() {
+
+ if (!islive ) {
+ return; // already dead
+ }
+
+ islive = false;
+
+ if (parentslot != NULL) {
+ parentslot->decrementLiveCount();
+ }
+}