/** * Adds a specific <tt>LocalCandidate</tt> to the list of <tt>LocalCandidate</tt>s harvested for * {@link #hostCandidate} by this harvest. * * @param candidate the <tt>LocalCandidate</tt> to be added to the list of * <tt>LocalCandidate</tt>s harvested for {@link #hostCandidate} by this harvest * @return <tt>true</tt> if the list of <tt>LocalCandidate</tt>s changed as a result of the method * invocation; otherwise, <tt>false</tt> */ protected boolean addCandidate(LocalCandidate candidate) { boolean added; // try to add the candidate to the component and then only add it to the // harvest if it wasn't deemed redundant if (!candidates.contains(candidate) && hostCandidate.getParentComponent().addLocalCandidate(candidate)) { added = candidates.add(candidate); } else { added = false; } return added; }
/** * Create a UPnP candidate. * * @param socket local socket * @param externalIP external IP address * @param port local port * @param component parent component * @param device the UPnP gateway device * @return a new <tt>UPNPCandidate</tt> instance which represents the specified * <tt>TransportAddress</tt> * @throws Exception if something goes wrong during candidate creation */ private List<LocalCandidate> createUPNPCandidate( IceSocketWrapper socket, String externalIP, int port, Component component, GatewayDevice device) throws Exception { List<LocalCandidate> ret = new ArrayList<>(); TransportAddress addr = new TransportAddress(externalIP, port, Transport.UDP); HostCandidate base = new HostCandidate(socket, component); UPNPCandidate candidate = new UPNPCandidate(addr, base, component, device); IceSocketWrapper stunSocket = candidate.getStunSocket(null); candidate.getStunStack().addSocket(stunSocket); component.getComponentSocket().add(candidate.getCandidateIceSocketWrapper()); ret.add(candidate); ret.add(base); return ret; }
/** * Gets the <tt>Candidate</tt>s harvested for {@link #hostCandidate} during this harvest. * * @return an array containing the <tt>Candidate</tt>s harvested for {@link #hostCandidate} during * this harvest */ LocalCandidate[] getCandidates() { return candidates.toArray(NO_CANDIDATES); }
/** * Gets the number of <tt>Candidate</tt>s harvested for {@link #hostCandidate} during this * harvest. * * @return the number of <tt>Candidate</tt>s harvested for {@link #hostCandidate} during this * harvest */ int getCandidateCount() { return candidates.size(); }
public void addSocket(IceSocketWrapper socket) { sockets.add(socket); }