/** Keeps track of one members plus its highest delivered and received seqnos */ @Immutable public static class Entry { protected final Address member; protected final long hd; protected final long hr; public Entry(Address member, long highest_delivered, long highest_received) { this.member=member; this.hd=highest_delivered; this.hr=highest_received; } public Address getMember() {return member;} public long getHighestDeliveredSeqno() {return hd;} public long getHighestReceivedSeqno() {return hr;} public long getHighest() {return max(hd,hr);} public boolean equals(Object obj) { Entry other=(Entry)obj; return member.equals(other.member) && hd == other.hd && hr == other.hr; } public String toString() { return member + ": [" + hd + " (" + hr + ")]"; } }
@Immutable public class Version { public static final short major;
@Immutable public class Digest implements SizeStreamable, Iterable<Digest.Entry>, Constructable<Digest> {
@Immutable public class MergeView extends View { protected View[] subgroups; // subgroups that merged into this single view (a list of Views)
@Immutable public class View implements Comparable<View>, SizeStreamable, Iterable<Address>, Constructable<View> {
/** Keeps track of one members plus its highest delivered and received seqnos */ @Immutable public static class Entry { protected final Address member; protected final long hd; protected final long hr; public Entry(Address member, long highest_delivered, long highest_received) { this.member=member; this.hd=highest_delivered; this.hr=highest_received; } public Address getMember() {return member;} public long getHighestDeliveredSeqno() {return hd;} public long getHighestReceivedSeqno() {return hr;} public long getHighest() {return max(hd,hr);} public boolean equals(Object obj) { Entry other=(Entry)obj; return member.equals(other.member) && hd == other.hd && hr == other.hr; } public String toString() { return member + ": [" + hd + " (" + hr + ")]"; } }
@Immutable public class Interval { private int next=0;
@Immutable public static class Entry implements Externalizable, Streamable { private long low_seqno=0;
@Immutable public class Version { public static final short major = 2;
@Immutable public class Version { public static final short major;
@Immutable public class Digest implements SizeStreamable, Iterable<Digest.Entry>, Constructable<Digest> {
@Immutable public class MergeView extends View { protected View[] subgroups; // subgroups that merged into this single view (a list of Views)
@Immutable public class View implements Comparable<View>, SizeStreamable, Iterable<Address>, Constructable<View> {