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

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

?? chord.java

?? High performance DB query
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/* * @(#)$Id: Chord.java,v 1.19 2004/12/31 19:53:43 huebsch Exp $ * * Copyright (c) 2001-2004 Regents of the University of California. * All rights reserved. * * This file is distributed under the terms in the attached BERKELEY-LICENSE * file. If you do not find these files, copies can be found by writing to: * Computer Science Division, Database Group, Universite of California, * 617 Soda Hall #1776, Berkeley, CA 94720-1776. Attention: Berkeley License * * Copyright (c) 2003-2004 Intel Corporation. All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE file. * If you do not find these files, copies can be found by writing to: * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, * Berkeley, CA, 94704.  Attention:  Intel License Inquiry. */package overlay.location.chord;import org.apache.log4j.Logger;import overlay.location.LocationService;import overlay.location.LocationServiceClient;import overlay.location.chord.payload.*;import services.LocalNode;import services.Output;import services.network.Payload;import services.network.udp.UDPClient;import services.stats.StatCollector;import services.stats.StatVars;import services.timer.TimerClient;import util.BitID;import util.logging.LogMessage;import util.network.serialization.SerializationManager;import util.timer.timeouts.TimeoutManager;import util.timer.timeouts.TimeoutManagerClient;import java.net.InetSocketAddress;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;/* The main chord file *//** * Class Chord * */public class Chord        implements LocationService, TimerClient, UDPClient,                   TimeoutManagerClient {    private static Logger logger = Logger.getLogger(Chord.class);    private static final Integer SIGNAL_STABILIZE = new Integer(1);    private static final Integer SIGNAL_MAINTAIN = new Integer(2);    private boolean doRouteMaintenance = true;    private int port, numBits, maxCachedFingers, maxHops;    private boolean recursive;    private double stabilizeDelay, maintainDelay, fingerLifetime,                   cachedFingerLifetime, defaultLatency, latencyWeight, timeout;    private BitID id;    private FingerTable normalFingers, cachedFingers;    private ArrayList localClients;    private HashMap lookupRequests, lookupRequestsID, applications,                    applicationsCallback;    private InetSocketAddress address;    private TimeoutManager timeoutManager;    private InetSocketAddress landmarkNode;    private int messageID;    /**     * Constructor Chord     *     * @param port     * @param recursive     * @param numBits     * @param maxCachedFingers     * @param stabilizeDelay     * @param maintainDelay     * @param fingerLifetime     * @param cachedFingerLifetime     * @param defaultLatency     * @param latencyWeight     * @param maxHops     * @param timeout     */    public Chord(int port, boolean recursive, int numBits,                 int maxCachedFingers, double stabilizeDelay,                 double maintainDelay, double fingerLifetime,                 double cachedFingerLifetime, double defaultLatency,                 double latencyWeight, int maxHops, double timeout) {        this.port = port;        this.recursive = recursive;        this.numBits = numBits;        this.maxCachedFingers = maxCachedFingers;        this.stabilizeDelay = stabilizeDelay;        this.maintainDelay = maintainDelay;        this.fingerLifetime = fingerLifetime;    // idLength * maintainDelay*2;        this.cachedFingerLifetime = cachedFingerLifetime;        this.defaultLatency = defaultLatency;        this.latencyWeight = latencyWeight;        this.maxHops = maxHops;        this.timeout = timeout;        this.messageID = 0;        this.applications = new HashMap();        this.applicationsCallback = new HashMap();        this.address = new InetSocketAddress(LocalNode.myIPAddress, this.port);        this.defaultLatency = defaultLatency;        this.timeoutManager = new TimeoutManager();        this.id = generateRandomID();        // Initialize data structures        init();    }    private BitID generateRandomID() {        BitID theID = new BitID();        for (int i = 0; i < numBits; i++) {            if (LocalNode.myRandom.nextBoolean()) {                theID.set(i, true);            }        }        if (Output.debuggingEnabled) {            logger.debug(new LogMessage(new Object[]{"Random Id: ",                                                     theID.toNumString()}));        }        return theID;    }    private void init() {        normalFingers = new FingerTable(id, address, numBits * 2,                                        fingerLifetime, latencyWeight);        cachedFingers = new FingerTable(id, address, maxCachedFingers,                                        cachedFingerLifetime, latencyWeight);        localClients = new ArrayList();        lookupRequests = new HashMap();        lookupRequestsID = new HashMap();    }    /**     * Method reset     */    public void reset() {        init();        applications = new HashMap();        applicationsCallback = new HashMap();    }    /* Network is being created artificially */    /**     * Method setRouteMaintenance     *     * @param doRouteMaintenance     */    public void setRouteMaintenance(boolean doRouteMaintenance) {        this.doRouteMaintenance = doRouteMaintenance;    }    /**     * Method fakeJoinStart     *     * @param id     * @return     */    public Object[] fakeJoinStart(BitID id) {        this.id = id;        init();        Object[] returnData = new Object[2];        returnData[0] = normalFingers;        returnData[1] = address;        return returnData;    }    /**     * Method join     *     * @param landmarkNode     */    public void join(InetSocketAddress landmarkNode) {        SerializationManager.registerClass(            "overlay.location.chord.payload.ChordMessage");        SerializationManager.registerClass(            "overlay.location.chord.payload.Join");        SerializationManager.registerClass(            "overlay.location.chord.payload.JoinRefuse");        SerializationManager.registerClass(            "overlay.location.chord.payload.JoinResponse");        SerializationManager.registerClass(            "overlay.location.chord.payload.Lookup");        SerializationManager.registerClass(            "overlay.location.chord.payload.LookupResponse");        SerializationManager.registerClass(            "overlay.location.chord.payload.Maintain");        SerializationManager.registerClass(            "overlay.location.chord.payload.MaintainResponse");        SerializationManager.registerClass(            "overlay.location.chord.payload.Message");        SerializationManager.registerClass(            "overlay.location.chord.payload.Notify");        SerializationManager.registerClass(            "overlay.location.chord.payload.Route");        SerializationManager.registerClass(            "overlay.location.chord.payload.RouteResponse");        SerializationManager.registerClass(            "overlay.location.chord.payload.Stabilize");        SerializationManager.registerClass(            "overlay.location.chord.payload.StabilizeResponse");        if ( !(LocalNode.myUDPMessenger.listen(new Integer(port), this))) {            throw new RuntimeException("Chord: Can't bind to port: " + port);        }        if (landmarkNode != null) {            this.landmarkNode = landmarkNode;            sendJoinRequest();        } else {            // No other nodes, setup stabilze and finger maintaince routines            stabilize();            maintainFingers();        }    }    /**     * Method join     *     * @param landmarkNodes     */    public void join(InetSocketAddress[] landmarkNodes) {        if (landmarkNodes.length > 0) {            join(landmarkNodes[0]);        }    }    /**     * Method leave     */    public void leave() {}    /**     * Method lookup     *     * @param locationID     * @param applicationID     * @param requestor     * @param requestID     */    public void lookup(BitID locationID, long applicationID,                       LocationServiceClient requestor, Object requestID) {        if (Output.debuggingEnabled) {            logger.debug(new LogMessage(new Object[]{                "Issuing LOOKUP request ID: ",                String.valueOf(messageID),                ", FOR:",                locationID.toNumString(),                ", LOCALREQUEST:",                requestID}));        }        if (requestID == null) {            return;        }        Integer localMap = new Integer(messageID);        lookupRequests.put(localMap, requestor);        lookupRequestsID.put(localMap, requestID);        Lookup request = Lookup.allocate(messageID++, address, locationID,                                         applicationID);        if (timeout > 0) {            timeoutManager.addTimeout(request, localMap, timeout, this);        }        StatCollector.addSample(StatVars.NETWORK_OUT,                                StatVars.LOCATION_SERVICE,                                StatVars.CHORD_LOOKUP,                                SerializationManager.getPayloadSize(request));        routeMessage(request, locationID, true, false);    }    /**     * Send a message to a node responsible for a locationID value     * @param locationID the identifier of interest     * @param applicationID the application intended to supply answer     * @param message the message that will be hopped along the path to the destination     * @param provideUpCalls true if upcalls should be attempted along path, false if just destination should get called     */    public void send(BitID locationID, long applicationID, Payload message,                     boolean provideUpCalls) {        if (Output.debuggingEnabled) {            logger.debug(new LogMessage(new Object[]{                "Issuing MESSAGE request ID: ",                String.valueOf(messageID),                ", FOR:",                locationID.toNumString()}));        }        Message request = Message.allocate(messageID++, address, applicationID,                                           message, provideUpCalls);        StatCollector.addSample(StatVars.NETWORK_OUT,                                StatVars.LOCATION_SERVICE,                                StatVars.CHORD_MESSAGE,                                SerializationManager.getPayloadSize(request));        routeMessage(request, locationID, true, provideUpCalls);    }    /**     * Method getLocationID     * @return     */    public BitID getLocationID() {        return id;    }    private void notifyMappingChange() {        // after graceful leave call all global clients that leave has occured        Iterator clientIterator = localClients.iterator();        while (clientIterator.hasNext()) {            LocationServiceClient client =                (LocationServiceClient) clientIterator.next();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品少妇一区二区| 精品成人私密视频| 色视频成人在线观看免| 91亚洲男人天堂| 99久久er热在这里只有精品15 | 性久久久久久久久久久久| 亚洲欧美偷拍三级| 亚洲免费观看高清| 一区二区三区视频在线观看| 亚洲欧美激情小说另类| 亚洲欧美电影一区二区| 亚洲一区精品在线| 亚洲影院在线观看| 五月天视频一区| 久草精品在线观看| 久久精品噜噜噜成人av农村| 久久er99精品| 福利视频网站一区二区三区| 99在线精品免费| 欧美亚洲高清一区二区三区不卡| 4438x亚洲最大成人网| 精品国产麻豆免费人成网站| 久久精子c满五个校花| 中文久久乱码一区二区| **网站欧美大片在线观看| 亚洲人成伊人成综合网小说| 午夜电影久久久| 国产一区二区三区视频在线播放| 国产成人啪免费观看软件| 99这里只有久久精品视频| 欧美三区在线视频| 2020国产成人综合网| 国产精品免费丝袜| 午夜欧美视频在线观看| 国产乱码精品一品二品| 色婷婷久久一区二区三区麻豆| 欧美久久久久久久久中文字幕| 精品精品国产高清一毛片一天堂| 国产欧美精品在线观看| 亚洲一区二区三区四区在线| 国精品**一区二区三区在线蜜桃| www.亚洲激情.com| 91麻豆精品国产自产在线观看一区 | 国产精品久久毛片av大全日韩| 亚洲影视资源网| 国产最新精品免费| 在线观看免费一区| 久久婷婷一区二区三区| 亚洲免费av高清| 国产一区二区不卡| 欧美特级限制片免费在线观看| 久久品道一品道久久精品| 亚洲精品网站在线观看| 理论片日本一区| 91麻豆免费在线观看| 欧美mv日韩mv亚洲| 夜夜爽夜夜爽精品视频| 国产馆精品极品| 欧美剧情片在线观看| 国产精品久久久久久亚洲毛片| 日本va欧美va欧美va精品| 91在线免费看| 26uuu国产电影一区二区| 亚洲一区二区三区四区在线| 成人午夜视频网站| 欧美一级精品大片| 一区二区三区在线高清| 国产精品自拍网站| 日韩欧美一二三| 亚洲成人在线观看视频| av在线免费不卡| 久久这里只有精品首页| 婷婷开心久久网| 日本高清无吗v一区| 国产无一区二区| 久久精品国产一区二区三| 欧美日韩亚洲综合在线| 一区二区三区四区在线| 成人av电影在线播放| 国产人成一区二区三区影院| 日本中文在线一区| 欧美视频一区在线| 一区二区三区在线高清| 99re这里只有精品视频首页| 国产午夜精品美女毛片视频| 激情丁香综合五月| 精品国产免费一区二区三区四区| 午夜视黄欧洲亚洲| 欧美日韩国产综合一区二区 | 精一区二区三区| 制服视频三区第一页精品| 亚洲高清免费在线| 色av成人天堂桃色av| 亚洲视频中文字幕| 波多野结衣的一区二区三区| 中文字幕欧美区| 国产成人夜色高潮福利影视| 久久综合九色综合久久久精品综合| 日本亚洲三级在线| 91麻豆精品国产91久久久使用方法| 亚洲成人免费观看| 欧美日韩免费视频| 婷婷久久综合九色综合绿巨人 | 91麻豆精品91久久久久同性| 亚洲综合成人在线视频| 91精品1区2区| 亚洲资源在线观看| 欧美日韩中文字幕精品| 性感美女极品91精品| 欧美精品vⅰdeose4hd| 日本伊人午夜精品| 久久亚洲精品小早川怜子| 国产精品一区二区91| 欧美激情在线一区二区三区| av激情亚洲男人天堂| 亚洲精品免费播放| 欧美三级欧美一级| 美腿丝袜一区二区三区| 久久九九影视网| 91视频在线观看| 亚洲成人综合在线| 亚洲精品在线电影| 成人在线一区二区三区| 亚洲欧洲精品一区二区三区| 一本一本大道香蕉久在线精品| 亚洲综合男人的天堂| 91精品国产综合久久久久久 | 欧美日韩国产首页在线观看| 日韩精品亚洲专区| www亚洲一区| eeuss国产一区二区三区| 亚洲午夜久久久久久久久久久| 777久久久精品| 国产精品一区一区| 最近中文字幕一区二区三区| 欧美日本一区二区| 国产一区二区毛片| 亚洲激情中文1区| 日韩限制级电影在线观看| 国产精品综合久久| 亚洲一区二区美女| 精品久久久久一区| 色综合天天做天天爱| 日本亚洲天堂网| 亚洲欧美自拍偷拍色图| 69p69国产精品| www.日韩精品| 青椒成人免费视频| 专区另类欧美日韩| 日韩一区二区电影网| 波多野结衣91| 蜜臀精品一区二区三区在线观看 | 欧美大胆一级视频| 91蜜桃在线免费视频| 免费在线观看视频一区| 中文字幕视频一区| 欧美不卡一二三| 欧美丝袜丝nylons| 风流少妇一区二区| 青椒成人免费视频| 亚洲精选在线视频| 久久男人中文字幕资源站| 欧美日韩国产美| 成人黄色综合网站| 精品亚洲成a人| 亚洲不卡一区二区三区| 国产精品伦一区二区三级视频| 欧美一区二区三区在线| 91视频免费看| 国产伦理精品不卡| 三级欧美在线一区| 亚洲免费观看高清完整版在线 | 欧美区一区二区三区| 99久久99久久精品国产片果冻| 国产中文字幕精品| 日韩中文字幕麻豆| 亚洲在线免费播放| 成人免费在线视频观看| 久久在线观看免费| 日韩一区二区影院| 欧美偷拍一区二区| 91丨porny丨国产| 成人久久视频在线观看| 国产在线一区二区综合免费视频| 日韩精品欧美精品| 亚洲韩国精品一区| 亚洲精选一二三| 亚洲色图欧洲色图| 中文字幕一区二区三区四区不卡 | 亚洲私人影院在线观看| 久久综合狠狠综合久久激情| 日韩欧美aaaaaa| 欧美一级在线免费| 91麻豆精品国产91久久久| 欧美年轻男男videosbes| 欧美自拍偷拍午夜视频| 一本大道av伊人久久综合| av电影在线观看一区| 成人在线综合网| 成人精品一区二区三区四区|