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

📄 transport.java

📁 jxta_src_2.41b jxta 2.41b 最新版源码 from www.jxta.org
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* *  Copyright (c) 2001 Sun Microsystems, Inc.  All rights *  reserved. * *  Redistribution and use in source and binary forms, with or without *  modification, are permitted provided that the following conditions *  are met: * *  1. Redistributions of source code must retain the above copyright *  notice, this list of conditions and the following disclaimer. * *  2. Redistributions in binary form must reproduce the above copyright *  notice, this list of conditions and the following disclaimer in *  the documentation and/or other materials provided with the *  distribution. * *  3. The end-user documentation included with the redistribution, *  if any, must include the following acknowledgment: *  "This product includes software developed by the *  Sun Microsystems, Inc. for Project JXTA." *  Alternately, this acknowledgment may appear in the software itself, *  if and wherever such third-party acknowledgments normally appear. * *  4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA" *  must not be used to endorse or promote products derived from this *  software without prior written permission. For written *  permission, please contact Project JXTA at http://www.jxta.org. * *  5. Products derived from this software may not be called "JXTA", *  nor may "JXTA" appear in their name, without prior written *  permission of Sun. * *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES *  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *  DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR *  ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF *  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, *  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT *  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF *  SUCH DAMAGE. *  ==================================================================== * *  This software consists of voluntary contributions made by many *  individuals on behalf of Project JXTA.  For more *  information on Project JXTA, please see *  <http://www.jxta.org/>. * *  This license is based on the BSD license adopted by the Apache Foundation. * *  $Id: Transport.java,v 1.12 2006/06/08 04:31:09 gonzo Exp $ */package net.jxta.ext.config;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;/** * Abstract Transport base class. * * <p>A Transport represents the physical {@link net.jxta.ext.config.Address} with which a JXTA Peer * communicates with the overall JXTA Network. A functional Peer must specify at * least one transport and may, opt, to include more then one. The JXTA Platform * continually optimizes the appropriate network paths amongst active peers * based on the provided transport information. * * <p>At least one Transport must be specified as incoming unless the peer is * specified as a Relay client in which case JXTA messages are conveyed via poll * model. * * <p>Transports can specify {@link net.jxta.ext.config.PublicAddress} and {@link net.jxta.ext.config.ProxyAddress} which * aid in NAT and FireWall traversal. * *@author     james todd [gonzo at jxta dot org] */public abstract class Transport {        /**     * {@link net.jxta.ext.config.Transport} scheme representation.     */        public static class Scheme {                /**         * TCP scheme: {@value}         */        public final static String TCP = "tcp";        /**         * HTTP scheme: {@value}         */                public final static String HTTP = "http";        private static List schemes = null;                static {            schemes = new ArrayList();            schemes.add(TCP);            schemes.add(HTTP);        }                        /**         * Accessor to the registered schemes.         *         * @return          {@link java.util.List} of schemes         */                public static List getSchemes() {            return schemes;        }        /**         * Validity check.         *         * @param       t       scheme         * @return              validity response         */                public static boolean isValid(String t) {            return getSchemes().contains(t);        }        private Scheme() {        }    }        private String scheme = Protocol.DEFAULT;    private boolean isEnabled = true;    private boolean isIncoming = false;    private boolean isOutgoing = false;    private List addresses = null;    private List publicAddresses = null;    private boolean isProxyEnabled = false;    private ProxyAddress proxy = null;    /**     * Constructor which specifies a scheme.     *     * @param       scheme      specified scheme value     */        public Transport(String scheme) {        setScheme(scheme);    }        /**     * Accessor to the scheme attribute.     *     * @return              the scheme attribute     */    public String getScheme() {        return this.scheme;    }    /**     * Specifies the scheme.     *     * @param       scheme      the specified scheme value     */        public void setScheme(String scheme) {        if (! Scheme.isValid(scheme)) {            throw new IllegalArgumentException("invalid scheme: " + scheme);        }                this.scheme = scheme;    }    /**     * Accessor to the enabled attribute.     *     * @return              the enabled attribute value     */        public boolean isEnabled() {        return this.isEnabled;    }    /**     * Specifies the enabled attribute.     *     * @param       isEnabled       specified enabled attribute     */        public void setEnabled(boolean isEnabled) {        this.isEnabled = isEnabled;    }    /**     * Accessor to the incoming attribute.     *     * <p>Indicates this transport reponds to externally initiated connections.     *     * @return          incoming attribute value     */        public boolean isIncoming() {        return this.isIncoming;    }    /**     * Specifies the incoming attribute.     *     * @param       isIncoming      specified incoming value     */        public void setIncoming(boolean isIncoming) {        this.isIncoming = isIncoming;    }    /**     * Accessor to the outgoing attribute.     *     * <p>Indicates this transport initiates outgoing connections.     *     * @return              outgoing attribute value     */        public boolean isOutgoing() {        return this.isOutgoing;    }    /**     * Specifies the outgoing attribute.     *     * @param       isOutgoing      the specified outgoing attribute     */        public void setOutgoing(boolean isOutgoing) {        this.isOutgoing = isOutgoing;    }    /**     * Accessor to the {@link net.jxta.ext.config.Address}.     *     * @return          {@link java.util.List} of {@link net.jxta.ext.config.Address}     */        public List getAddresses() {        return this.addresses != null ?            this.addresses : Collections.EMPTY_LIST;    }    /**     * Clears and specifies the provided {@link net.jxta.ext.config.Address}.     *     * @param       address     specified {@link net.jxta.ext.config.Address}     */        public void setAddress(Address address) {        setAddresses(Collections.singletonList(address));    }    /**     * Clears and specifies a {@link java.util.List} of {@link net.jxta.ext.config.Address}.     *     * @param       addresses       {@link java.util.List} of {@link net.jxta.ext.config.Address}     */        public void setAddresses(List addresses) {        clearAddresses();        addAddresses(addresses);    }

⌨️ 快捷键说明

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