public int compareTo(View o) { return view_id.compareTo(o.view_id); }
public boolean equals(Object other) { return other instanceof ViewId && (this == other || compareTo((ViewId)other) == 0); }
/** Adds received INFO to views hashmap */ protected void addInfo(Address sender, ViewId view_id, String logical_name, PhysicalAddress physical_addr) { if(logical_name != null && sender instanceof UUID) NameCache.add(sender, logical_name); if(physical_addr != null) down(new Event(Event.ADD_PHYSICAL_ADDRESS, new Tuple<>(sender, physical_addr))); synchronized(views) { ViewId existing=views.get(sender); if(existing == null || existing.compareTo(view_id) < 0) views.put(sender, view_id); } }
/** * Old Compare */ public int compare(Object o) { return compareTo(o); }
public boolean equals(Object other_view) { return compareTo(other_view) == 0; }
public boolean equals(Object other) { return other instanceof ViewId && (this == other || compareTo((ViewId)other) == 0); }
public int compareTo(View o) { return view_id.compareTo(o.view_id); }
public boolean equals(Object obj) { if(!(obj instanceof View)) return false; if(vid != null) { int rc=vid.compareTo(((View)obj).vid); if(rc != 0) return false; if(members != null && ((View)obj).members != null) { return members.equals(((View)obj).members); } } else { if(((View)obj).vid == null) return true; } return false; }
/** In case we get a different JOIN_RSP from a previous JOIN_REQ sent by us (as a client), we simply apply the * new view if it is greater than ours * * @param join_rsp */ public void handleJoinResponse(JoinRsp join_rsp) { View v=join_rsp.getView(); ViewId tmp_vid=v != null? v.getVid() : null; if(tmp_vid != null && gms.view_id != null && tmp_vid.compareTo(gms.view_id) > 0) { gms.installView(v); } }
/** Adds received INFO to views hashmap */ protected void addInfo(Address sender, ViewId view_id, String logical_name, PhysicalAddress physical_addr) { if(logical_name != null && sender instanceof UUID) NameCache.add(sender, logical_name); if(physical_addr != null) down(new Event(Event.ADD_PHYSICAL_ADDRESS, new Tuple<>(sender, physical_addr))); synchronized(views) { ViewId existing=views.get(sender); if(existing == null || existing.compareTo(view_id) < 0) views.put(sender, view_id); } }
private void handleView(View v, Address sender) { Vector members=v.getMembers(); if(!members.contains(local_addr)) { if(log.isWarnEnabled()) log.warn("discarding view as I (" + local_addr + ") am not member of view (" + v + ")"); return; } ViewId vid=v.getVid(); int rc=vid.compareTo(my_vid); if(rc > 0) { // foreign view is greater than my own view; update my own view ! if(log.isTraceEnabled()) log.trace("view from " + sender + " (" + vid + ") is greater than my own view (" + my_vid + ");" + " will update my own view"); Message view_change=new Message(local_addr, local_addr, null); org.jgroups.protocols.pbcast.GMS.GmsHeader hdr; hdr=new org.jgroups.protocols.pbcast.GMS.GmsHeader(org.jgroups.protocols.pbcast.GMS.GmsHeader.VIEW, v); view_change.putHeader(GMS.name, hdr); up_prot.up(new Event(Event.MSG, view_change)); num_views_adjusted++; } }
rc=vid.compareTo(view_id); if(rc <= 0) { if(log.isWarnEnabled() && rc < 0) // only scream if view is smaller, silently discard same views