X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=blobdiff_plain;f=src%2Fjava%2Fiotcloud%2FSlot.java;h=ff0e901081d5850817c36306d7c72807f2995599;hp=e111f225d785a0e14500f2f78ec0cfb1d0245894;hb=6fa4bc657823e25ede66cbd443b81745838a91f2;hpb=89e8371e2ca27ce4f581596497b786eb0a209678 diff --git a/src/java/iotcloud/Slot.java b/src/java/iotcloud/Slot.java index e111f22..ff0e901 100644 --- a/src/java/iotcloud/Slot.java +++ b/src/java/iotcloud/Slot.java @@ -4,7 +4,7 @@ import java.nio.ByteBuffer; import javax.crypto.Mac; import java.util.Arrays; -class Slot { +class Slot implements Liveness { static final int SLOT_SIZE=2048; static final int HMAC_SIZE=32; @@ -14,6 +14,7 @@ class Slot { private long machineid; private Vector entries; private int livecount; + private boolean seqnumlive; Slot(long _seqnum, long _machineid, byte[] _prevhmac, byte[] _hmac) { seqnum=_seqnum; @@ -22,10 +23,11 @@ class Slot { hmac=_hmac; entries=new Vector(); livecount=1; + seqnumlive=true; } - - Slot(long _seqnum, byte[] _bytes) { - seqnum=_seqnum; + + Slot(long _seqnum, long _machineid, byte[] _prevhmac) { + this(_seqnum, _machineid, _prevhmac, new byte[HMAC_SIZE]); } byte[] getHMAC() { @@ -40,11 +42,11 @@ class Slot { entries.add(e); livecount++; } - + Vector getEntries() { return entries; } - + static Slot decode(byte[] array, Mac mac) { mac.update(array, HMAC_SIZE, array.length-HMAC_SIZE); byte[] realmac=mac.doFinal(); @@ -61,18 +63,18 @@ class Slot { long machineid=bb.getLong(); int numentries=bb.getInt(); Slot slot=new Slot(seqnum, machineid, prevhmac, hmac); - - for(int i=0;i 0; }