public Object up(Message msg) { Address sender=msg.getSrc(); Header hdr=msg.getHeader(this.id); if(hdr != null) { update(sender); // updates the heartbeat entry for 'sender' num_heartbeats_received++; unsuspect(sender); return null; // consume heartbeat message, do not pass to the layer above } else if(msg_counts_as_heartbeat) { // message did not originate from FD_ALL layer, but still count as heartbeat update(sender); // update when data is received too ? maybe a bit costly if(has_suspected_mbrs) unsuspect(sender); } return up_prot.up(msg); // pass up to the layer above us }
public void up(MessageBatch batch) { int matching_msgs=batch.replaceIf(HAS_HEADER, null, true); if(matching_msgs > 0 || msg_counts_as_heartbeat) { update(batch.sender()); num_heartbeats_received++; if(has_suspected_mbrs) unsuspect(batch.sender()); } if(!batch.isEmpty()) up_prot.up(batch); }
public Object down(Event evt) { switch(evt.getType()) { case Event.VIEW_CHANGE: down_prot.down(evt); View v=evt.getArg(); handleViewChange(v); return null; case Event.SET_LOCAL_ADDRESS: local_addr=evt.getArg(); break; case Event.UNSUSPECT: Address mbr=evt.getArg(); unsuspect(mbr); update(mbr); break; } return down_prot.down(evt); }
public Object up(Message msg) { Address sender=msg.getSrc(); Header hdr=msg.getHeader(this.id); if(hdr != null) { update(sender); // updates the heartbeat entry for 'sender' num_heartbeats_received++; unsuspect(sender); return null; // consume heartbeat message, do not pass to the layer above } else if(msg_counts_as_heartbeat) { // message did not originate from FD_ALL layer, but still count as heartbeat update(sender); // update when data is received too ? maybe a bit costly if(has_suspected_mbrs) unsuspect(sender); } return up_prot.up(msg); // pass up to the layer above us }
public void up(MessageBatch batch) { int matching_msgs=batch.replaceIf(HAS_HEADER, null, true); if(matching_msgs > 0 || msg_counts_as_heartbeat) { update(batch.sender()); num_heartbeats_received++; if(has_suspected_mbrs) unsuspect(batch.sender()); } if(!batch.isEmpty()) up_prot.up(batch); }
hdr=(Header)msg.getHeader(name); if(msg_counts_as_heartbeat) update(msg.getSrc()); // update when data is received too ? maybe a bit costly if(hdr == null) break; // message did not originate from FD_ALL layer, just pass up update(sender); // updates the heartbeat entry for 'sender' num_heartbeats_received++; break; // don't pass up !
public Object down(Event evt) { switch(evt.getType()) { case Event.VIEW_CHANGE: down_prot.down(evt); View v=evt.getArg(); handleViewChange(v); return null; case Event.SET_LOCAL_ADDRESS: local_addr=evt.getArg(); break; case Event.UNSUSPECT: Address mbr=evt.getArg(); unsuspect(mbr); update(mbr); break; } return down_prot.down(evt); }