public PeerNode[] getConnectedPeers() { return peers.connectedPeers(); }
public boolean anyConnectedPeers() { PeerNode[] conns = connectedPeers(); for(PeerNode conn: conns) { if(conn.isRoutable()) return true; } return false; }
public boolean anyDarknetPeers() { PeerNode[] conns = connectedPeers(); for(PeerNode p : conns) if(p.isDarknet()) return true; return false; }
public int countConnectedOpennetPeers() { int count = 0; PeerNode[] peers = connectedPeers(); for(PeerNode peer: peers) { if(peer == null) continue; if(!(peer instanceof OpennetPeerNode)) continue; if(!peer.isRoutable()) continue; count++; } return count; }
public int countNonBackedOffPeers(boolean realTime) { PeerNode[] peers = connectedPeers(); // even if myPeers peers are connected they won't be routed to int countNoBackoff = 0; for(PeerNode peer: peers) { if(peer.isRoutable()) if(!peer.isRoutingBackedOff(realTime)) countNoBackoff++; } return countNoBackoff; } // Stats stuff
/** * @return An array of the current locations (as doubles) of all * our connected peers or double[0] if Node.shallWePublishOurPeersLocation() is false */ public double[] getPeerLocationDoubles(boolean pruneBackedOffPeers) { double[] locs; if(!node.shallWePublishOurPeersLocation()) return new double[0]; PeerNode[] conns = connectedPeers(); locs = new double[conns.length]; int x = 0; for(PeerNode conn: conns) { if(conn.isRoutable()) { if(!pruneBackedOffPeers || !conn.shouldBeExcludedFromPeerList()) { locs[x++] = conn.getLocation(); } } } // Wipe out any information contained in the order java.util.Arrays.sort(locs, 0, x); if(x != locs.length) return Arrays.copyOf(locs, x); else return locs; }
boolean myFlag = false; double myLoc = getLocation(); for(PeerNode pn: node.peers.connectedPeers()) { PeerLocation l = pn.location; if(pn.isRoutable()) {
@Override public void run() { try { PeerNode[] peers = null; synchronized(node.peers) { peers = node.peers.connectedPeers(); } if(peers == null || peers.length == 0) return; // Now we don't have to care about synchronization anymore recalculateMean(peers); capacityInputRealtime.calculate(peers); capacityInputBulk.calculate(peers); capacityOutputRealtime.calculate(peers); capacityOutputBulk.calculate(peers); } finally { // Requeue after to avoid exacerbating overload node.getTicker().queueTimedJob(this, 200); } }
long soonestTimeoutWakeup = Long.MAX_VALUE; PeerNode[] peers = connectedPeers(); if(!node.enablePerNodeFailureTables) key = null;