/** @syncpriority 200 */ public void notifyDeadConnection(ConnectionPair pair) { synchronized (this) { streamConns.removeConnectionPair(pair); if (pair instanceof LCPair) { prm.notifyDeadConnection(pair.getCC().getNodeId()); if (streamConns.getNumListenConns() < mina.getConfig().getMaxSources()) requestCachedSources(); bidStrategy.cleanup(pair.getCC().getNodeId()); // Make note of them in case they come back LCPair lcp = (LCPair) pair; SourceStatus sourceStat = lcp.getLastSourceStatus(); if (sourceStat != null) { StreamStatus streamStat = lcp.getLastStreamStatus(); if (streamStat == null) throw new SeekInnerCalmException(); mina.getSourceMgr().cachePossiblyDeadSource(sourceStat, streamStat); } } if (streamConns.getNumBroadcastConns() == 0 && streamConns.getNumListenConns() == 0) { try { pageBuf.sleep(); } catch (IOException e) { log.error("Error sleeping page buffer", e); stop(); } } } if (isReceiving()) mina.getEventMgr().fireReceptionConnsChanged(streamId); }
public Set<String> getSourceNodeIds() { Set<String> result = mina.getSourceMgr().getReadyNodeIds(streamId); for (ConnectionPair lcp : streamConns.getAllListenConns()) { result.add(lcp.getCC().getNodeDescriptor().getId()); } return result; }