add some comments
[iotcloud.git] / src / java / iotcloud / Entry.java
index 4ff9b06ab55a69aed41be10d2d430fe4f6346ad1..cef615f7d8c83df68f69c02a84f9980795ff3a5a 100644 (file)
@@ -1,11 +1,22 @@
 package iotcloud;
 import java.nio.ByteBuffer;
 
+/**
+ * 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
+ */
+
 abstract class Entry implements Liveness {
        static final byte TypeKeyValue = 1;
        static final byte TypeLastMessage = 2;
        static final byte TypeRejectedMessage = 3;
        static final byte TypeTableStatus = 4;
+
+       /* Records whether the information is still live or has been
+                superceded by a newer update.  */
+
        private boolean islive = true;
        private Slot parentslot;
 
@@ -13,6 +24,11 @@ abstract class Entry implements Liveness {
                parentslot = _parentslot;
        }
 
+       /**
+        * Static method for decoding byte array into Entry objects.  First
+        * byte tells the type of entry.
+        */
+
        static Entry decode(Slot slot, ByteBuffer bb) {
                byte type=bb.get();
                switch(type) {
@@ -33,18 +49,40 @@ abstract class Entry implements Liveness {
                }
        }
 
+       /**
+        * Returns true if the Entry object is still live.
+        */
+
        boolean isLive() {
                return islive;
        }
 
+       /**
+        * Flags the entry object as dead.  Also decrements the live count
+        * of the parent slot.
+        */
+
        void setDead() {
                islive = false;
                parentslot.decrementLiveCount();
        }
 
+       /**
+        * Serializes the Entry object into the byte buffer.
+        */
+
        abstract void encode(ByteBuffer bb);
 
+       /**
+        * Returns the size in bytes the entry object will take in the byte
+        * array.
+        */
+
        abstract int getSize();
 
+       /**
+        * Returns a byte encoding the type of the entry object.
+        */
+
        abstract byte getType();
 }