formatting
[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;                                                                                         //Oldest seqnum in range
7         private long newseqnum;                                                                                         //Newest seqnum in range (inclusive)
8         private boolean equalto;                                                                                                                        //Is message sent or not sent by machineid
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         long getOldSeqNum() {
19                 return oldseqnum;
20         }
21
22         long getNewSeqNum() {
23                 return newseqnum;
24         }
25
26         boolean getEqual() {
27                 return equalto;
28         }
29
30         long getMachineID() {
31                 return machineid;
32         }
33
34         static Entry decode(Slot slot, ByteBuffer bb) {
35                 long machineid=bb.getLong();
36                 long oldseqnum=bb.getLong();
37                 long newseqnum=bb.getLong();
38                 byte equalto=bb.get();
39                 return new RejectedMessage(slot, machineid, oldseqnum, newseqnum, equalto==1);
40         }
41
42         void encode(ByteBuffer bb) {
43                 bb.put(Entry.TypeRejectedMessage);
44                 bb.putLong(machineid);
45                 bb.putLong(oldseqnum);
46                 bb.putLong(newseqnum);
47                 bb.put(equalto?(byte)1:(byte)0);
48         }
49
50         int getSize() {
51                 return 3*Long.BYTES + 2*Byte.BYTES;
52         }
53
54         byte getType() {
55                 return Entry.TypeRejectedMessage;
56         }
57 }