public Object up(Event evt) { switch(evt.getType()) { case Event.SUSPECT: Object retval=up_prot.up(evt); // todo: change this to only accept lists in 4.1 Collection<Address> suspects=evt.arg() instanceof Address? Collections.singletonList(evt.arg()) : evt.arg(); Request[] suspect_reqs=new Request[suspects.size()]; int index=0; for(Address mbr: suspects) suspect_reqs[index++]=new Request(Request.SUSPECT, mbr); view_handler.add(suspect_reqs); ack_collector.suspect(suspects); merge_ack_collector.suspect(suspects); return retval; case Event.UNSUSPECT: impl.unsuspect(evt.getArg()); return null; // discard case Event.MERGE: view_handler.add(new Request(Request.MERGE, null, evt.getArg())); return null; // don't pass up case Event.IS_MERGE_IN_PROGRESS: return merger.isMergeInProgress(); } return up_prot.up(evt); }
public Object up(Event evt) { switch(evt.getType()) { case Event.SUSPECT: Object retval=up_prot.up(evt); // todo: change this to only accept lists in 4.1 Collection<Address> suspects=evt.arg() instanceof Address? Collections.singletonList(evt.arg()) : evt.arg(); Request[] suspect_reqs=new Request[suspects.size()]; int index=0; for(Address mbr: suspects) suspect_reqs[index++]=new Request(Request.SUSPECT, mbr); view_handler.add(suspect_reqs); ack_collector.suspect(suspects); merge_ack_collector.suspect(suspects); return retval; case Event.UNSUSPECT: impl.unsuspect(evt.getArg()); return null; // discard case Event.MERGE: view_handler.add(new Request(Request.MERGE, null, evt.getArg())); return null; // don't pass up case Event.IS_MERGE_IN_PROGRESS: return merger.isMergeInProgress(); } return up_prot.up(evt); }
impl.unsuspect((Address)evt.getArg()); return null; // discard