⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transportcandidate.java.svn-base

📁 开源项目openfire的完整源程序
💻 SVN-BASE
字号:
/** * $Revision: $ * $Date: $ * * Copyright (C) 2007 Jive Software. All rights reserved. * * This software is published under the terms of the GNU Lesser Public License (LGPL), * a copy of which is included in this distribution. */package net.java.sipmack.media;import org.jivesoftware.smack.XMPPConnection;import java.io.IOException;import java.net.*;import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.Arrays;/** * Transport candidate. * <p/> * A candidate represents the possible transport for data interchange between * the two endpoints. * * @author Thiago Camargo */public abstract class TransportCandidate {    private String name;    private String ip; // IP address    private int port; // Port to use, or 0 for any port    private String localIp;    private int generation;    protected String password;    private String sessionId;    private XMPPConnection connection;    private TransportCandidate symmetric;    public void addCandidateEcho() throws SocketException, UnknownHostException {    }    public String getIp() {        return ip;    }    /**     * Set the IP address.     *     * @param ip the IP address     */    public void setIp(String ip) {        this.ip = ip;    }    /**     * Get local IP to bind to this candidate     *     * @return     */    public String getLocalIp() {        return localIp == null ? ip : localIp;    }    /**     * Set local IP to bind to this candidate     *     * @param localIp     */    public void setLocalIp(String localIp) {        this.localIp = localIp;    }    /**     * Get the symetric candidate for this candidate if it exists.     *     * @return     */    public TransportCandidate getSymmetric() {        return symmetric;    }    /**     * Set the symetric candidate for this candidate.     *     * @param symetric     */    public void setSymmetric(TransportCandidate symetric) {        this.symmetric = symetric;    }    /**     * Get the password used by ICE or relayed candidate     *     * @return a password     */    public String getPassword() {        return password;    }    /**     * Set the password used by ICE or relayed candidate     *     * @param password a password     */    public void setPassword(String password) {        this.password = password;    }    /**     * Get the XMPPConnection use to send or receive this candidate     *     * @return     */    public XMPPConnection getConnection() {        return connection;    }    /**     * Set the XMPPConnection use to send or receive this candidate     *     * @param connection     */    public void setConnection(XMPPConnection connection) {        this.connection = connection;    }    /**     * Get the jingle磗 sessionId that is using this candidate     *     * @return     */    public String getSessionId() {        return sessionId;    }    /**     * Set the jingle磗 sessionId that is using this candidate     *     * @param sessionId     */    public void setSessionId(String sessionId) {        this.sessionId = sessionId;    }    /**     * Empty constructor     */    public TransportCandidate() {        this(null, 0, 0);    }    /**     * Constructor with IP address and port     *     * @param ip   The IP address.     * @param port The port number.     */    public TransportCandidate(String ip, int port) {        this(ip, port, 0);    }    /**     * Constructor with IP address and port     *     * @param ip         The IP address.     * @param port       The port number.     * @param generation The generation     */    public TransportCandidate(String ip, int port, int generation) {        this.ip = ip;        this.port = port;        this.generation = generation;    }    /**     * Return true if the candidate is not valid.     *     * @return true if the candidate is null.     */    public boolean isNull() {        if (ip == null) {            return true;        }        else if (ip.length() == 0) {            return true;        }        else if (port < 0) {            return true;        }        else {            return false;        }    }    /**     * Get the port, or 0 for any port.     *     * @return the port or 0     */    public int getPort() {        return port;    }    /**     * Set the port, using 0 for any port     *     * @param port the port     */    public void setPort(int port) {        this.port = port;    }    /**     * Get the generation for a transportElement definition     *     * @return the generation     */    public int getGeneration() {        return generation;    }    /**     * Set the generation for a transportElement definition.     *     * @param generation the generation number     */    public void setGeneration(int generation) {        this.generation = generation;    }    /**     * Get the name used for identifying this transportElement method (optional)     *     * @return a name used for identifying this transportElement (ie,     *         "myrtpvoice1")     */    public String getName() {        return name;    }    /**     * Set a name for identifying this transportElement.     *     * @param name the name used for the transportElement     */    public void setName(String name) {        this.name = name;    }    /*      * (non-Javadoc)      *      * @see java.lang.Object#equals(java.lang.Object)      */    public boolean equals(Object obj) {        if (this == obj) {            return true;        }        if (obj == null) {            return false;        }        if (getClass() != obj.getClass()) {            return false;        }        final TransportCandidate other = (TransportCandidate) obj;        if (generation != other.generation) {            return false;        }        if (getIp() == null) {            if (other.getIp() != null) {                return false;            }        }        else if (!getIp().equals(other.getIp())) {            return false;        }        if (getName() == null) {            if (other.getName() != null) {                return false;            }        }        else if (!getName().equals(other.getName())) {            return false;        }        if (getPort() != other.getPort()) {            return false;        }        return true;    }    /**     * Fixed transport candidate     */    public static class Fixed extends TransportCandidate {        public Fixed() {            super();        }        /**         * Constructor with IP address and port         *         * @param ip   The IP address.         * @param port The port number.         */        public Fixed(String ip, int port) {            super(ip, port);        }        /**         * Constructor with IP address and port         *         * @param ip         The IP address.         * @param port       The port number.         * @param generation The generation         */        public Fixed(String ip, int port, int generation) {            super(ip, port, generation);        }    }    /**     * Type-safe enum for the transportElement protocol     */    public static class Protocol {        public static final Protocol UDP = new Protocol("udp");        public static final Protocol TCP = new Protocol("tcp");        public static final Protocol TCPACT = new Protocol("tcp-act");        public static final Protocol TCPPASS = new Protocol("tcp-pass");        public static final Protocol SSLTCP = new Protocol("ssltcp");        private String value;        public Protocol(String value) {            this.value = value;        }        public String toString() {            return value;        }        /**         * Returns the Protocol constant associated with the String value.         */        public static Protocol fromString(String value) {            if (value == null) {                return UDP;            }            value = value.toLowerCase();            if (value.equals("udp")) {                return UDP;            }            else if (value.equals("tcp")) {                return TCP;            }            else if (value.equals("tcp-act")) {                return TCPACT;            }            else if (value.equals("tcp-pass")) {                return TCPPASS;            }            else if (value.equals("ssltcp")) {                return SSLTCP;            }            else {                return UDP;            }        }        /*           * (non-Javadoc)           *           * @see java.lang.Object#equals(java.lang.Object)           */        public boolean equals(Object obj) {            if (this == obj) {                return true;            }            if (obj == null) {                return false;            }            if (getClass() != obj.getClass()) {                return false;            }            final Protocol other = (Protocol) obj;            if (value == null) {                if (other.value != null) {                    return false;                }            }            else if (!value.equals(other.value)) {                return false;            }            return true;        }        /**         * Return true if the protocol is not valid.         *         * @return true if the protocol is null         */        public boolean isNull() {            if (value == null) {                return true;            }            else if (value.length() == 0) {                return true;            }            else {                return false;            }        }    }    /**     * Type-safe enum for the transportElement channel     */    public static class Channel {        public static final Channel MYRTPVOICE = new Channel("myrtpvoice");        public static final Channel MYRTCPVOICE = new Channel("myrtcpvoice");        private String value;        public Channel(String value) {            this.value = value;        }        public String toString() {            return value;        }        /**         * Returns the MediaChannel constant associated with the String value.         */        public static Channel fromString(String value) {            if (value == null) {                return MYRTPVOICE;            }            value = value.toLowerCase();            if (value.equals("myrtpvoice")) {                return MYRTPVOICE;            }            else if (value.equals("tcp")) {                return MYRTCPVOICE;            }            else {                return MYRTPVOICE;            }        }        /*           * (non-Javadoc)           *           * @see java.lang.Object#equals(java.lang.Object)           */        public boolean equals(Object obj) {            if (this == obj) {                return true;            }            if (obj == null) {                return false;            }            if (getClass() != obj.getClass()) {                return false;            }            final Channel other = (Channel) obj;            if (value == null) {                if (other.value != null) {                    return false;                }            }            else if (!value.equals(other.value)) {                return false;            }            return true;        }        /**         * Return true if the channel is not valid.         *         * @return true if the channel is null         */        public boolean isNull() {            if (value == null) {                return true;            }            else if (value.length() == 0) {                return true;            }            else {                return false;            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -