more code
[iotcloud.git] / src / java / iotcloud / RejectedMessage.java
index f74c0c1d2bd44ecdcc9d8b33de6a055a5926d932..cd58cdf89ac070287186394668a1f009ede77a4d 100644 (file)
@@ -1,6 +1,41 @@
 package iotcloud;
+import java.nio.ByteBuffer;
 
-public class RejectedMessage extends Entry {
+class RejectedMessage extends Entry {
+       private long machineid;
+       private long oldseqnum;
+       private long newseqnum;
+       private boolean equalto;
 
+       RejectedMessage(Slot slot, long _machineid, long _oldseqnum, long _newseqnum, boolean _equalto) {
+               super(slot);
+               machineid=_machineid;
+               oldseqnum=_oldseqnum;
+               newseqnum=_newseqnum;
+               equalto=_equalto;
+       }
+       
+       static Entry decode(Slot slot, ByteBuffer bb) {
+               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);
+       }
+       
+       void encode(ByteBuffer bb) {
+               bb.put(Entry.TypeRejectedMessage);
+               bb.putLong(machineid);
+               bb.putLong(oldseqnum);
+               bb.putLong(newseqnum);
+               bb.put(equalto?(byte)1:(byte)0);
+       }
+       
+       int getSize() {
+               return 3*Long.BYTES + 2*Byte.BYTES;
+       }
 
+       byte getType() {
+               return Entry.TypeRejectedMessage;
+       }
 }