class RejectedMessage extends Entry {
+ /* Sequence number */
+ private long sequencenum;
+
+
/* Machine identifier */
private long machineid;
/* Oldest sequence number in range */
/* 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;
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) {
void encode(ByteBuffer bb) {
bb.put(Entry.TypeRejectedMessage);
+ bb.putLong(sequencenum);
bb.putLong(machineid);
bb.putLong(oldseqnum);
bb.putLong(newseqnum);
}
int getSize() {
- return 3*Long.BYTES + 2*Byte.BYTES;
+ return 4*Long.BYTES + 2*Byte.BYTES;
}
byte getType() {
}
Entry getCopy(Slot s) {
- return new RejectedMessage(s, machineid, oldseqnum, newseqnum, equalto);
+ return new RejectedMessage(s,sequencenum, machineid, oldseqnum, newseqnum, equalto);
}
}