亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? message.java

?? jxta平臺的開發(fā)包
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
/* * * $Id: Message.java,v 1.46 2005/11/04 04:59:28 bondolo Exp $ * * 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 SUN MICROSYSTEMS  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. */package net.jxta.endpoint;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.PrintWriter;import java.io.Serializable;import java.io.StringWriter;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.ListIterator;import java.util.Map;import java.util.Vector;import java.io.IOException;import java.util.ConcurrentModificationException;import java.util.NoSuchElementException;import org.apache.log4j.Level;import org.apache.log4j.Logger;import net.jxta.document.MimeMediaType;import net.jxta.util.AbstractSimpleSelectable;import net.jxta.util.SimpleSelectable;import net.jxta.impl.id.UUID.UUID;import net.jxta.impl.id.UUID.UUIDFactory;/** * Messages are abstract containers for protocol messages within JXTA. Services  * and applications are expected to use Messages as the basis for any protocols * implemented within JXTA. Messages are exchanged through the * {@link net.jxta.endpoint.EndpointService} or * {@link net.jxta.pipe.PipeService}. * * <p/>A Message is composed of an ordered list of zero or more * {@link net.jxta.endpoint.MessageElement MessageElements}. Each * {@link net.jxta.endpoint.MessageElement} is associated with a namespace at * the time it is added to the message. Duplicate * {@link net.jxta.endpoint.MessageElement MessageElements} are permitted. * * <p/><b>Messages are not synchronized. All of the iterators returned by this implementation are * "fail-fast". Concurrent modification from multiple threads will produce unexpected results.</b> * * @see  net.jxta.endpoint.MessageElement * @see  net.jxta.endpoint.EndpointAddress * @see  net.jxta.endpoint.EndpointService * @see  net.jxta.pipe.InputPipe * @see  net.jxta.pipe.OutputPipe * @see  net.jxta.pipe.PipeService **/public class Message extends AbstractSimpleSelectable implements Serializable {        /**     *  Log4J Logger     **/    private static final transient Logger LOG = Logger.getLogger( Message.class.getName() );        /**     *  Magic value for this format of serialization version.     **/    private static final long serialVersionUID = 3418026921074097757L;        /**     *  If <tt>true</tt>, then modification logging be activated. This is a very      *  expensive option as it causes a stack crawl to be captured for every      *  message modification.     *     *  <p/>To enable modification tracking, set to <tt>true</tt> and recompile.     **/    protected static final boolean LOG_MODIFICATIONS = false;        /**     *  If <tt>true</tt>, then a special tracking element is added to the      *  message. This provides the ability to follow messages throughout the      *  network. If a message has a tracking element then it will be used in      *  the <tt>toString()</tt>  representation.     *     *  <p/>The element is currently named "Tracking UUID" and is stored in the     *  "jxta" namespace. The element contains an IETF version 1 UUID in string     *  form.     *     *  <p/>To enable addition of a tracking element, set to <tt>true</tt>     *  and recompile.     **/    protected static final boolean GLOBAL_TRACKING_ELEMENT = false;        /**     *  Incremented for each standalone message instance. {@see #lineage} for     *  information about how message numbers can be used.     **/    private static transient volatile int messagenumber = 1;        /**     *  This string identifies the namespace which is assumed when calls are     *  made that don't include a namespace specification.     **/    protected final String defaultNamespace;        /**     *  the namespaces in this message and the elements in each.     *     *  <ul>     *      <li>keys are {@link java.lang.String}</li>     *      <li>values are {@link java.util.List}     *          <ul>     *              <li>values are {@link net.jxta.endpoint.MessageElement}</li>     *          </ul>     *      </li>     *  </ul>     **/    protected transient Map namespaces = new HashMap();        /**     *  List of the elements.     *     *  <ul>     *      <li>values are {@link net.jxta.endpoint.Message.element}</li>     *  </ul>     **/    protected transient List elements = new ArrayList();        /**     *  Message properties HashMap     *     *  <ul>     *      <li>keys are {@link java.lang.Object}</li>     *      <li>values are {@link java.lang.Object}</li>     *  </ul>     **/    protected transient Map properties = Collections.synchronizedMap(new HashMap());    /**     *  A list of {@link java.lang.Integer} which details the lineage (history     *  of cloning) that produced this message. This message's number is index     *  0, all of the ancestors are in order at higher indexes.     *     *  <p/>Message numbers are not part of the message content and are only      *  stored locally. The are useful for following messages throughout their     *  lifetime and is normally shown as part of the <tt>toString()</tt>     *  display for Messages.     **/    protected transient List lineage = new ArrayList();        /**     *  Modification count of this message. Can be used to detect message being     *  concurrently modified when message is shared.     *     *  <p/>The modification count is part of the <tt>toString()</tt>     *  display for Messages.     **/    protected transient volatile int modCount = 0;        /**     *  cached aggregate size of all the memeber elements. Used by     *  {@link #getByteLength()}     **/    protected transient long cachedByteLength = 0;        /**     *  modcount at the time the message length was last calculated. Used by     *  {@link #getByteLength()}     **/    protected transient int cachedByteLengthModCount = -1;            /**     *  If <tt>true</tt> then the message is modifiable. This is primarily      *  intended as a diagnostic tool for detecting concurrent modification.     *     *  @deprecated You really should not depend on this feature.     **/    public boolean modifiable = true;            /**     *  If <tt>LOG_MODIFICATIONS</tt> is <tt>true</tt> then this will contain      *  the history of modifications this message.     *     *  <p/><ul>     *      <li>     *      Values are {@link java.lang.Throwable} with the description field     *      formatted as <code>timeInAbsoluteMillis : threadName</code>.     *      </li>     *  </ul>     **/    protected transient List modHistory;        /**     *  A ListIterator for MessageElements which also provides the ability to     *  determine the namespace of the current message element. Message Elements     *  are iterated in the order in which they were added to the Message.     *     *  <p/>This ListIterator returned is not synchronized with the message. If     *  you modify the state of the Message, the iterator will throw     *  ConcurrentModificationException when <code>next()</code> or     *  <code>previous()</code> is called.     **/    public class ElementIterator implements ListIterator {                /**         * The elements being iterated.         */        ListIterator list;                /**         * The current element         */        element current = null;                /**         *  The modCount at the time when the iterator was created.         **/        transient int origModCount;                /**         * Intialize the iterator from a list iterator. The list iterator must         * be an iterator of {@link element}.         *         * @param list The ListIterator we are managing.         */        ElementIterator( ListIterator list ) {            origModCount = Message.this.getMessageModCount();            this.list = list;        }                /**         *  {@inheritDoc}         **/        public boolean hasNext() {            if( origModCount != Message.this.getMessageModCount() ) {                RuntimeException failure = new ConcurrentModificationException( Message.this + " concurrently modified. Iterator was made at mod " + origModCount );                                if (LOG.isEnabledFor(Level.ERROR)) {                    LOG.error( Message.this + " concurrently modified. iterator mod=" + origModCount + " current mod=" + Message.this.getMessageModCount() + "\n" + getMessageModHistory(), failure );                }                                throw failure;            }                        return list.hasNext();        }                /**         *  {@inheritDoc}         **/        public Object next() {            if( origModCount != Message.this.getMessageModCount() ) {                RuntimeException failure = new ConcurrentModificationException( Message.this + " concurrently modified. Iterator was made at mod " + origModCount );                                if (LOG.isEnabledFor(Level.ERROR)) {                    LOG.error( Message.this + " concurrently modified. iterator mod=" + origModCount + " current mod=" + Message.this.getMessageModCount() + "\n" + getMessageModHistory(), failure );                }                                throw failure;            }                        current = (element) list.next();            return current.element;        }                /**         *  {@inheritDoc}         **/        public int nextIndex() {            return list.nextIndex();        }                /**         *  {@inheritDoc}         **/        public boolean hasPrevious() {            if( origModCount != Message.this.getMessageModCount() ) {                RuntimeException failure = new ConcurrentModificationException( Message.this + " concurrently modified. Iterator was made at mod " + origModCount );                                if (LOG.isEnabledFor(Level.ERROR)) {                    LOG.error( Message.this + " concurrently modified. iterator mod=" + origModCount + " current mod=" + Message.this.getMessageModCount() + "\n" + getMessageModHistory(), failure );                }                                throw failure;            }                        return list.hasPrevious();        }                /**         *  {@inheritDoc}         **/        public Object previous() {            if( origModCount != Message.this.getMessageModCount() ) {                RuntimeException failure = new ConcurrentModificationException( Message.this + " concurrently modified. Iterator was made at mod " + origModCount );                                if (LOG.isEnabledFor(Level.ERROR)) {                    LOG.error( Message.this + " concurrently modified. iterator mod=" + origModCount + " current mod=" + Message.this.getMessageModCount() + "\n" + getMessageModHistory(), failure );                }                

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区三区99| 久久蜜桃av一区二区天堂| 一区二区三区欧美日| 日本韩国一区二区三区视频| 亚洲精品视频在线看| 欧美亚洲国产怡红院影院| 婷婷成人激情在线网| 日韩小视频在线观看专区| 国模套图日韩精品一区二区| 久久久亚洲高清| aaa国产一区| 亚洲成在人线在线播放| 日韩午夜激情免费电影| 国产精品18久久久久久vr | 日韩一区二区免费视频| 久久av中文字幕片| 国产精品水嫩水嫩| 欧美综合一区二区| 老司机精品视频线观看86| 久久久久九九视频| 日本丶国产丶欧美色综合| 免费国产亚洲视频| 国产精品久久久久影院色老大| 欧洲亚洲国产日韩| 激情av综合网| 亚洲一区二区三区四区不卡| 精品国产成人系列| 在线看国产日韩| 国产很黄免费观看久久| 亚洲制服丝袜在线| 久久嫩草精品久久久精品| 91黄色在线观看| 韩国三级在线一区| 亚洲一区在线看| 国产精品美女久久久久久| 91精品国产91久久综合桃花| 成人av集中营| 久久aⅴ国产欧美74aaa| 一区二区理论电影在线观看| 欧美精品一区二区三区蜜桃| 欧美调教femdomvk| 成人性色生活片| 久久精品国产久精国产爱| 一区二区三区丝袜| 国产精品婷婷午夜在线观看| 91.xcao| 99riav久久精品riav| 久久av老司机精品网站导航| 亚洲成人动漫在线免费观看| 国产精品久线观看视频| www久久精品| 日韩一区二区三区电影在线观看| 欧美亚洲动漫精品| 不卡av在线网| 国产精品1024久久| 国产在线精品免费| 美女视频一区二区三区| 午夜精品福利在线| 亚洲国产精品久久久男人的天堂| 亚洲桃色在线一区| 亚洲欧洲精品天堂一级 | 欧美高清一级片在线| 成人av在线播放网站| 国产精品伊人色| 另类调教123区| 裸体健美xxxx欧美裸体表演| 午夜不卡av免费| 亚洲va欧美va人人爽午夜| 亚洲午夜精品17c| 亚洲精品免费电影| 亚洲综合清纯丝袜自拍| 亚洲男人的天堂在线aⅴ视频| 中文字幕一区二区三区四区| 国产精品美女久久久久aⅴ国产馆| 国产午夜精品一区二区三区视频| 久久这里都是精品| 久久久精品免费免费| 久久久一区二区三区捆绑**| 久久一二三国产| 国产视频一区二区在线观看| 久久久久久夜精品精品免费| 精品福利av导航| 国产亚洲一本大道中文在线| 久久久精品国产免大香伊| 国产欧美一区二区三区鸳鸯浴| 久久丝袜美腿综合| 中文字幕电影一区| 亚洲欧美日韩国产成人精品影院 | 国产亚洲综合在线| 中文一区二区在线观看| 中文字幕亚洲不卡| 一区二区国产视频| 人妖欧美一区二区| 国产伦精品一区二区三区免费迷| 国产91精品一区二区| 99久久er热在这里只有精品66| 欧美在线不卡视频| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日韩mp4| 欧美一级理论性理论a| 26uuu精品一区二区三区四区在线| 久久久精品天堂| 一区二区三区久久| 日韩在线一二三区| 国产乱码精品一区二区三区av | 精品国产一区二区三区四区四| 久久久久久久综合狠狠综合| 中文字幕色av一区二区三区| 亚洲综合丁香婷婷六月香| 蜜臀久久99精品久久久画质超高清| 黄色日韩网站视频| 91蜜桃视频在线| 欧美一级高清片| 中文字幕亚洲不卡| 看国产成人h片视频| 成人aaaa免费全部观看| 欧美日韩aaa| 国产精品无人区| 日韩激情视频网站| 成人ar影院免费观看视频| 欧美日韩视频一区二区| 国产亚洲制服色| 日韩激情视频在线观看| 99久久精品国产观看| 欧美成人精品高清在线播放| 亚洲欧美日韩在线| 国产成人综合精品三级| 欧美一级xxx| 亚洲美女免费视频| 国产成人综合视频| 日韩一级在线观看| 亚洲激情综合网| 国产成人av在线影院| 日韩一区二区三区视频在线观看| 亚洲欧美一区二区久久| 国产原创一区二区三区| 欧美日韩精品综合在线| 中文字幕一区日韩精品欧美| 精品中文字幕一区二区| 欧美日韩高清一区| 亚洲女厕所小便bbb| 成人一区二区三区视频在线观看| 日韩视频一区二区三区在线播放| 一区二区三区国产豹纹内裤在线| 国产成人自拍网| 精品久久久久久久人人人人传媒 | 亚洲一区二区四区蜜桃| 亚洲成a人在线观看| 91女神在线视频| 国产日韩成人精品| 韩国女主播成人在线观看| 8x福利精品第一导航| 亚洲综合一区在线| 一区二区三区中文字幕电影 | 中文字幕一区二区三区在线不卡| 国模冰冰炮一区二区| 日韩三级电影网址| 日韩成人伦理电影在线观看| 在线观看日产精品| 亚洲欧美另类久久久精品2019| 成人综合婷婷国产精品久久免费| 欧美一卡二卡三卡四卡| 日韩精品久久理论片| 欧美日本一区二区三区四区 | 欧美一区二区三区四区久久| 亚洲成a人在线观看| 欧美伦理电影网| 人人狠狠综合久久亚洲| 日韩女优毛片在线| 激情综合亚洲精品| 久久久久免费观看| 国产一区二区精品在线观看| www国产成人| 国产成人精品1024| 国产精品毛片无遮挡高清| aaa欧美色吧激情视频| 一区在线观看免费| 91福利在线观看| 亚洲福利国产精品| 欧美精品v国产精品v日韩精品 | 97久久人人超碰| 亚洲人妖av一区二区| 91国偷自产一区二区开放时间| 亚洲色图一区二区三区| 欧美性xxxxxx少妇| 日本91福利区| 国产欧美一区二区精品性色| www.日韩大片| 亚洲v日本v欧美v久久精品| 欧美成人一区二区三区片免费 | 精品国产一区二区国模嫣然| 国产精品综合在线视频| 亚洲视频你懂的| 欧美精品视频www在线观看| 奇米888四色在线精品| 久久亚洲私人国产精品va媚药| 成人va在线观看| 丝袜亚洲另类丝袜在线| 2023国产一二三区日本精品2022| 成人黄色在线看|