/** * Establishes an order between 2 ViewIds. The comparison is done on the IDs, if they are equal, we use the creator. * * @return 0 for equality, value less than 0 if smaller, greater than 0 if greater. */ public int compareTo(ViewId other) { return id > other.id ? 1 : id < other.id ? -1 : creator.compareTo(other.creator); }
public int compareTo(Owner o) { return thread_id < o.thread_id? -1 : thread_id > o.thread_id? 1 : address.compareTo(o.address); }
@Override public int compareTo(AddressableNode node) { return this.address.compareTo(node.address); }
@Override public int compareTo(MessageID other) { if (other == null) { throw new NullPointerException(); } return id == other.id ? this.address.compareTo(other.address) : id < other.id ? -1 : 1; }
public int compareTo(Route o) { return site_master.compareTo(o.siteMaster()); }
protected View generateGlobalView(View local_view, View remote_view, boolean merge) { List<View> views=new ArrayList<>(2); if(local_view != null) views.add(local_view); if(remote_view != null) views.add(remote_view); Collections.sort(views, (v1, v2) -> { ViewId vid1=v1.getViewId(), vid2=v2.getViewId(); Address creator1=vid1.getCreator(), creator2=vid2.getCreator(); int rc=creator1.compareTo(creator2); if(rc != 0) return rc; long id1=vid1.getId(), id2=vid2.getId(); return id1 > id2 ? 1 : id1 < id2? -1 : 0; }); List<Address> combined_members=new ArrayList<>(); for(View view: views) combined_members.addAll(view.getMembers()); long new_view_id; synchronized(this) { new_view_id=global_view_id++; } Address view_creator=combined_members.isEmpty()? local_addr : combined_members.get(0); if(merge) return new MergeView(view_creator, new_view_id, combined_members, views); else return new View(view_creator, new_view_id, combined_members); }
public synchronized void addConnection(Address peer_addr, Connection conn) throws Exception { boolean conn_exists=hasConnection(peer_addr), replace=conn_exists && local_addr.compareTo(peer_addr) < 0; // bigger conn wins if(!conn_exists || replace) { replaceConnection(peer_addr, conn); // closes old conn conn.start(); } else { log.trace("%s: rejected connection from %s %s", local_addr, peer_addr, explanation(conn_exists, replace)); Util.close(conn); // keep our existing conn, reject accept() and close client_sock } }
protected void handleAccept(final Socket client_sock) throws Exception { TcpConnection conn=null; try { conn=new TcpConnection(client_sock, TcpServer.this); Address peer_addr=conn.peerAddress(); synchronized(this) { boolean conn_exists=hasConnection(peer_addr), replace=conn_exists && use_peer_connections && local_addr.compareTo(peer_addr) < 0; // bigger conn wins if(!conn_exists || replace) { replaceConnection(peer_addr, conn); // closes old conn conn.start(); log.trace("%s: accepted connection from %s", local_addr, peer_addr); } else { log.trace("%s: rejected connection from %s %s", local_addr, peer_addr, explanation(conn_exists, replace)); Util.close(conn); // keep our existing conn, reject accept() and close client_sock } } } catch(Exception ex) { Util.close(conn); throw ex; } } }
/** * {@inheritDoc} * @see java.lang.Comparable#compareTo(java.lang.Object) */ @Override public int compareTo(Member member) { return this.address.compareTo(((AddressMember) member).address); } }
/** * Establishes an order between 2 ViewIds. The comparison is done on the IDs, if they are equal, we use the creator. * * @return 0 for equality, value less than 0 if smaller, greater than 0 if greater. */ public int compareTo(ViewId other) { return id > other.id ? 1 : id < other.id ? -1 : creator.compareTo(other.creator); }
@Override public int compareTo(AddressableNode node) { return this.address.compareTo(node.address); }
public int compareTo(Owner o) { return thread_id < o.thread_id? -1 : thread_id > o.thread_id? 1 : address.compareTo(o.address); }
@Override public int compareTo(MessageID other) { if (other == null) { throw new NullPointerException(); } return id == other.id ? this.address.compareTo(other.address) : id < other.id ? -1 : 1; }
public int compareTo(Route o) { return site_master.compareTo(o.siteMaster()); }
protected View generateGlobalView(View local_view, View remote_view, boolean merge) { List<View> views=new ArrayList<>(2); if(local_view != null) views.add(local_view); if(remote_view != null) views.add(remote_view); Collections.sort(views, (v1, v2) -> { ViewId vid1=v1.getViewId(), vid2=v2.getViewId(); Address creator1=vid1.getCreator(), creator2=vid2.getCreator(); int rc=creator1.compareTo(creator2); if(rc != 0) return rc; long id1=vid1.getId(), id2=vid2.getId(); return id1 > id2 ? 1 : id1 < id2? -1 : 0; }); List<Address> combined_members=new ArrayList<>(); for(View view: views) combined_members.addAll(view.getMembers()); long new_view_id; synchronized(this) { new_view_id=global_view_id++; } Address view_creator=combined_members.isEmpty()? local_addr : combined_members.get(0); if(merge) return new MergeView(view_creator, new_view_id, combined_members, views); else return new View(view_creator, new_view_id, combined_members); }
public synchronized void addConnection(Address peer_addr, Connection conn) throws Exception { boolean conn_exists=hasConnection(peer_addr), replace=conn_exists && local_addr.compareTo(peer_addr) < 0; // bigger conn wins if(!conn_exists || replace) { replaceConnection(peer_addr, conn); // closes old conn conn.start(); } else { log.trace("%s: rejected connection from %s %s", local_addr, peer_addr, explanation(conn_exists, replace)); Util.close(conn); // keep our existing conn, reject accept() and close client_sock } }
protected void handleAccept(final Socket client_sock) throws Exception { TcpConnection conn=null; try { conn=new TcpConnection(client_sock, TcpServer.this); Address peer_addr=conn.peerAddress(); synchronized(this) { boolean conn_exists=hasConnection(peer_addr), replace=conn_exists && use_peer_connections && local_addr.compareTo(peer_addr) < 0; // bigger conn wins if(!conn_exists || replace) { replaceConnection(peer_addr, conn); // closes old conn conn.start(); log.trace("%s: accepted connection from %s", local_addr, peer_addr); } else { log.trace("%s: rejected connection from %s %s", local_addr, peer_addr, explanation(conn_exists, replace)); Util.close(conn); // keep our existing conn, reject accept() and close client_sock } } } catch(Exception ex) { Util.close(conn); throw ex; } } }