@MBean(description="Measures message delivery times") public class DELIVERY_TIME extends Protocol { protected AverageMinMax delivery_times=new AverageMinMax();
this.obj=instance; Class<? extends Object> c=obj.getClass(); expose_all=c.isAnnotationPresent(MBean.class) && c.getAnnotation(MBean.class).exposeAll();
private static ObjectName getObjectName(Object obj, String name) throws MalformedObjectNameException { MBean resource = obj.getClass().getAnnotation(MBean.class); if (name != null && !name.isEmpty()) { return new ObjectName(name); } else if (resource.objectName() != null && !resource.objectName().isEmpty()) { return new ObjectName(resource.objectName()); } else { throw new MalformedObjectNameException(obj + " of class " + obj.getClass() + " has an invalid object name"); } }
@MBean(description="Protocol to inject an arbitrary view in nodes") public class INJECT_VIEW extends Protocol {
private static ObjectName getObjectName(Object obj, String name) throws MalformedObjectNameException { MBean resource = obj.getClass().getAnnotation(MBean.class); if (name != null && !name.isEmpty()) { return new ObjectName(name); } else if (resource.objectName() != null && !resource.objectName().isEmpty()) { return new ObjectName(resource.objectName()); } else { throw new MalformedObjectNameException(obj + " of class " + obj.getClass() + " has an invalid object name"); } }
this.obj=instance; Class<? extends Object> c=obj.getClass(); expose_all=c.isAnnotationPresent(MBean.class) && c.getAnnotation(MBean.class).exposeAll();
@MBean(description="Drops up or down messages according to user-defined filters") public class DROP extends Protocol { protected final List<Predicate<Message>> down_filters=new ArrayList<>(), up_filters=new ArrayList<>();
@MBean(description="Serializes entire message into the payload of another message") public class SERIALIZE extends Protocol {
@MBean(description="Simple flow control protocol based on a credit system") public class UFC extends FlowControl { protected final static FcHeader UFC_REPLENISH_HDR = new FcHeader(FcHeader.REPLENISH);
@MBean(description="Simple flow control protocol based on a credit system") public class MFC extends FlowControl { protected final static FcHeader MFC_REPLENISH_HDR = new FcHeader(FcHeader.REPLENISH);
@MBean(description="Streaming state transfer protocol") public class STATE extends StreamingStateTransfer {
@MBean(description="Protocol which exposes various statistics") public class STATS extends Protocol { long sent_msgs, sent_bytes, sent_ucasts, sent_mcasts, received_ucasts, received_mcasts;
@MBean(description="Forwards unicast messages to the current coordinator") public class FORWARD_TO_COORD extends Protocol {
@MBean(description="Double-checks suspicions reports") public class VERIFY_SUSPECT extends Protocol implements Runnable {
@MBean(description="State transfer protocol based on byte array transfer") public class STATE_TRANSFER extends Protocol implements ProcessingQueue.Handler<Address> { protected long start, stop; // to measure state transfer time
@MBean(description = "Implementation of Total Order Anycast based on Skeen's Algorithm") public class TOA extends Protocol implements DeliveryProtocol {
@MBean(description="Streaming state transfer protocol base class") public abstract class StreamingStateTransfer extends Protocol implements ProcessingQueue.Handler<Address> {
@MBean(description="Failure detection based on simple heartbeat protocol") public class FD extends Protocol {
@MBean(description="Failure detection protocol based on sockets connecting members") public class FD_SOCK extends Protocol implements Runnable { protected static final int NORMAL_TERMINATION=9;
@MBean(description="Protocol to maintain distributed atomic counters") public class COUNTER extends Protocol {