Stuff
[iotcloud.git] / version2 / src / java / iotcloud / RejectedMessage.java
index 9c84f18e053720b43de5e617684ba512d828b2fd..741f92f6f04714e51d6d2ebdd73c31fdd62aefa4 100644 (file)
@@ -12,6 +12,10 @@ import java.util.HashSet;
 
 
 class RejectedMessage extends Entry {
+       /* Sequence number */
+       private long sequencenum;
+       
+
        /* Machine identifier */
        private long machineid;
        /* Oldest sequence number in range */
@@ -24,8 +28,9 @@ class RejectedMessage extends Entry {
        /* Set of machines that have not received notification. */
        private HashSet<Long> watchset;
 
-       RejectedMessage(Slot slot, long _machineid, long _oldseqnum, long _newseqnum, boolean _equalto) {
+       RejectedMessage(Slot slot, long _sequencenum, long _machineid, long _oldseqnum, long _newseqnum, boolean _equalto) {
                super(slot);
+               sequencenum = _sequencenum;
                machineid=_machineid;
                oldseqnum=_oldseqnum;
                newseqnum=_newseqnum;
@@ -48,12 +53,18 @@ class RejectedMessage extends Entry {
                return machineid;
        }
 
+
+       long getSequenceNumber() {
+               return sequencenum;
+       }
+
        static Entry decode(Slot slot, ByteBuffer bb) {
+               long sequencenum=bb.getLong();
                long machineid=bb.getLong();
                long oldseqnum=bb.getLong();
                long newseqnum=bb.getLong();
                byte equalto=bb.get();
-               return new RejectedMessage(slot, machineid, oldseqnum, newseqnum, equalto==1);
+               return new RejectedMessage(slot,sequencenum, machineid, oldseqnum, newseqnum, equalto==1);
        }
 
        void setWatchSet(HashSet<Long> _watchset) {
@@ -68,6 +79,7 @@ class RejectedMessage extends Entry {
 
        void encode(ByteBuffer bb) {
                bb.put(Entry.TypeRejectedMessage);
+               bb.putLong(sequencenum);
                bb.putLong(machineid);
                bb.putLong(oldseqnum);
                bb.putLong(newseqnum);
@@ -75,7 +87,7 @@ class RejectedMessage extends Entry {
        }
 
        int getSize() {
-               return 3*Long.BYTES + 2*Byte.BYTES;
+               return 4*Long.BYTES + 2*Byte.BYTES;
        }
 
        byte getType() {
@@ -83,6 +95,6 @@ class RejectedMessage extends Entry {
        }
        
        Entry getCopy(Slot s) {
-               return new RejectedMessage(s, machineid, oldseqnum, newseqnum, equalto);
+               return new RejectedMessage(s,sequencenum, machineid, oldseqnum, newseqnum, equalto);
        }
 }