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

📄 connectioninfo.java

📁 android_UPNP_DLNA_控制点
💻 JAVA
字号:
/* * Copyright (C) 2010 Teleal GmbH, Switzerland * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program.  If not, see <http://www.gnu.org/licenses/>. */package org.teleal.cling.support.model;import org.teleal.cling.model.ServiceReference;/** * Immutable type encapsulating the state of a single connection. * * @author Alessio Gaeta * @author Christian Bauer */public class ConnectionInfo {    public enum Status {        OK,        ContentFormatMismatch,        InsufficientBandwidth,        UnreliableChannel,        Unknown    }    public enum Direction {        Output,        Input;        public Direction getOpposite() {            return this.equals(Output) ? Input : Output;        }    }    final protected int connectionID;    final protected int rcsID;    final protected int avTransportID;    final protected ProtocolInfo protocolInfo;    final protected ServiceReference peerConnectionManager;    final protected int peerConnectionID;    final protected Direction direction;    protected Status connectionStatus = Status.Unknown;    /**     * Creates a default instance with values expected for the default connection ID "0".     * <p>     * The ConnectionManager 1.0 specification says:     * </p>     * <p>     * If optional action PrepareForConnection is not implemented then (limited) connection     * information can be retrieved for ConnectionID 0. The device should return all known     * information:     * </p>     * <ul>     * <li>RcsID should be 0 or -1</li>     * <li>AVTransportID should be 0 or -1</li>     * <li>ProtocolInfo should contain accurate information if it is known, otherwhise     *     it should be NULL (empty string)</li>     * <li>PeerConnectionManager should be NULL (empty string)</li>     * <li>PeerConnectionID should be -1</li>     * <li>Direction should be Input or Output</li>     * <li>Status should be OK or Unknown</li>     * </ul>     */    public ConnectionInfo() {        this(0, 0, 0, null, null, -1, Direction.Input, Status.Unknown);    }    public ConnectionInfo(int connectionID,                          int rcsID, int avTransportID,                          ProtocolInfo protocolInfo,                          ServiceReference peerConnectionManager, int peerConnectionID,                          Direction direction, Status connectionStatus) {        this.connectionID = connectionID;        this.rcsID = rcsID;        this.avTransportID = avTransportID;        this.protocolInfo = protocolInfo;        this.peerConnectionManager = peerConnectionManager;        this.peerConnectionID = peerConnectionID;        this.direction = direction;        this.connectionStatus = connectionStatus;    }    public int getConnectionID() {        return connectionID;    }    public int getRcsID() {        return rcsID;    }    public int getAvTransportID() {        return avTransportID;    }    public ProtocolInfo getProtocolInfo() {        return protocolInfo;    }    public ServiceReference getPeerConnectionManager() {        return peerConnectionManager;    }    public int getPeerConnectionID() {        return peerConnectionID;    }    public Direction getDirection() {        return direction;    }    synchronized public Status getConnectionStatus() {        return connectionStatus;    }    synchronized public void setConnectionStatus(Status connectionStatus) {        this.connectionStatus = connectionStatus;    }    @Override    public boolean equals(Object o) {        if (this == o) return true;        if (o == null || getClass() != o.getClass()) return false;        ConnectionInfo that = (ConnectionInfo) o;        if (avTransportID != that.avTransportID) return false;        if (connectionID != that.connectionID) return false;        if (peerConnectionID != that.peerConnectionID) return false;        if (rcsID != that.rcsID) return false;        if (connectionStatus != that.connectionStatus) return false;        if (direction != that.direction) return false;        if (peerConnectionManager != null ? !peerConnectionManager.equals(that.peerConnectionManager) : that.peerConnectionManager != null)            return false;        if (protocolInfo != null ? !protocolInfo.equals(that.protocolInfo) : that.protocolInfo != null) return false;        return true;    }    @Override    public int hashCode() {        int result = connectionID;        result = 31 * result + rcsID;        result = 31 * result + avTransportID;        result = 31 * result + (protocolInfo != null ? protocolInfo.hashCode() : 0);        result = 31 * result + (peerConnectionManager != null ? peerConnectionManager.hashCode() : 0);        result = 31 * result + peerConnectionID;        result = 31 * result + direction.hashCode();        result = 31 * result + connectionStatus.hashCode();        return result;    }    @Override    public String toString() {        return "(" + getClass().getSimpleName() + ") ID: " + getConnectionID() + ", Status: " + getConnectionStatus();    }}

⌨️ 快捷键说明

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