more code
[iotcloud.git] / src / java / iotcloud / RejectedMessage.java
1 package iotcloud;
2 import java.nio.ByteBuffer;
3
4 class RejectedMessage extends Entry {
5         private long machineid;
6         private long oldseqnum;
7         private long newseqnum;
8         private boolean equalto;
9
10         RejectedMessage(Slot slot, long _machineid, long _oldseqnum, long _newseqnum, boolean _equalto) {
11                 super(slot);
12                 machineid=_machineid;
13                 oldseqnum=_oldseqnum;
14                 newseqnum=_newseqnum;
15                 equalto=_equalto;
16         }
17         
18         static Entry decode(Slot slot, ByteBuffer bb) {
19                 long machineid=bb.getLong();
20                 long oldseqnum=bb.getLong();
21                 long newseqnum=bb.getLong();
22                 byte equalto=bb.get();
23                 return new RejectedMessage(slot, machineid, oldseqnum, newseqnum, equalto==1);
24         }
25         
26         void encode(ByteBuffer bb) {
27                 bb.put(Entry.TypeRejectedMessage);
28                 bb.putLong(machineid);
29                 bb.putLong(oldseqnum);
30                 bb.putLong(newseqnum);
31                 bb.put(equalto?(byte)1:(byte)0);
32         }
33         
34         int getSize() {
35                 return 3*Long.BYTES + 2*Byte.BYTES;
36         }
37
38         byte getType() {
39                 return Entry.TypeRejectedMessage;
40         }
41 }