class RejectedMessage extends Entry {
private long machineid;
- private long seqnum;
- private boolean equalto;
+ private long oldseqnum;//Oldest seqnum in range
+ private long newseqnum;//Newest seqnum in range (inclusive)
+ private boolean equalto;//Is message sent or not sent by machineid
- RejectedMessage(long _machineid, long _seqnum, boolean _equalto) {
+ RejectedMessage(Slot slot, long _machineid, long _oldseqnum, long _newseqnum, boolean _equalto) {
+ super(slot);
machineid=_machineid;
- seqnum=_seqnum;
+ oldseqnum=_oldseqnum;
+ newseqnum=_newseqnum;
equalto=_equalto;
}
+
+ long getOldSeqNum() {
+ return oldseqnum;
+ }
+
+ long getNewSeqNum() {
+ return newseqnum;
+ }
+
+ boolean getEqual() {
+ return equalto;
+ }
+
+ long getMachineID() {
+ return machineid;
+ }
- static Entry decode(ByteBuffer bb) {
+ static Entry decode(Slot slot, ByteBuffer bb) {
long machineid=bb.getLong();
- long seqnum=bb.getLong();
+ long oldseqnum=bb.getLong();
+ long newseqnum=bb.getLong();
byte equalto=bb.get();
- return new RejectedMessage(machineid, seqnum, equalto==1);
+ return new RejectedMessage(slot, machineid, oldseqnum, newseqnum, equalto==1);
}
void encode(ByteBuffer bb) {
bb.put(Entry.TypeRejectedMessage);
bb.putLong(machineid);
- bb.putLong(seqnum);
+ bb.putLong(oldseqnum);
+ bb.putLong(newseqnum);
bb.put(equalto?(byte)1:(byte)0);
}
int getSize() {
- return 2*Long.BYTES + 2*Byte.BYTES;
+ return 3*Long.BYTES + 2*Byte.BYTES;
+ }
+
+ byte getType() {
+ return Entry.TypeRejectedMessage;
}
}