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

📄 distnodehandle.java

📁 pastry的java实现的2.0b版
💻 JAVA
字号:
/*************************************************************************"FreePastry" Peer-to-Peer Application Development Substrate Copyright 2002, Rice University. All rights reserved.Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions aremet:- Redistributions of source code must retain the above copyrightnotice, this list of conditions and the following disclaimer.- Redistributions in binary form must reproduce the above copyrightnotice, this list of conditions and the following disclaimer in thedocumentation and/or other materials provided with the distribution.- Neither  the name  of Rice  University (RICE) nor  the names  of itscontributors may be  used to endorse or promote  products derived fromthis software without specific prior written permission.This software is provided by RICE and the contributors on an "as is"basis, without any representations or warranties of any kind, expressor implied including, but not limited to, representations orwarranties of non-infringement, merchantability or fitness for aparticular purpose. In no event shall RICE or contributors be liablefor any direct, indirect, incidental, special, exemplary, orconsequential damages (including, but not limited to, procurement ofsubstitute goods or services; loss of use, data, or profits; orbusiness interruption) however caused and on any theory of liability,whether in contract, strict liability, or tort (including negligenceor otherwise) arising in any way out of the use of this software, evenif advised of the possibility of such damage.********************************************************************************/package rice.pastry.dist;import rice.pastry.*;import rice.pastry.messaging.*;import java.io.*;import java.net.*;import java.util.*;/** * Abstract class for handles to "real" remote nodes. This class abstracts out * the node handle verification which is necessary in the "real" pastry * protocols, since NodeHandles are sent across the wire. * * @version $Id: DistNodeHandle.java 3274 2006-05-15 16:17:47Z jeffh $ * @author Alan Mislove */public abstract class DistNodeHandle extends NodeHandle implements Observer {  // the nodeId of this node handle's remote node  /**   * DESCRIBE THE FIELD   */  protected Id nodeId;  // the address (ip + port) of this node  /**   * DESCRIBE THE FIELD   */  protected InetSocketAddress address;  /**   * a unique number matching the liveness of this node this number will be   * different each time the process is run, but the NodeId can be the same.   */  protected int epoch;  final static long serialVersionUID = 6030505652558872412L;  /**   * Constructor   *   * @param nodeId This node handle's node Id.   * @param address DESCRIBE THE PARAMETER   */  public DistNodeHandle(Id nodeId, InetSocketAddress address) {    this.nodeId = nodeId;    this.address = address;    // note that we always want the epoch to be random, there is no reason to ever    // use a specifiable randomsource for this    epoch = new Random().nextInt();  }  /**   * Gets the nodeId of this Pastry node.   *   * @return the node id.   */  public final Id getNodeId() {    return nodeId;  }  /**   * Gets the epoch or session identifier of this Pastry node.   *   * @return the epoch.   */  public int getEpoch() {    return epoch;  }  /**   * Returns the IP address and port of the remote node.   *   * @return The InetSocketAddress of the remote node.   */  public final InetSocketAddress getAddress() {    return address;  }  /**   * Returns a String representation of this DistNodeHandle. This method is   * designed to be called by clients using the node handle, and is provided in   * order to ensure that the right node handle is being talked to.   *   * @return A String representation of the node handle.   */  public abstract String toString();  /**   * Equivalence relation for nodehandles. They are equal if and only if their   * corresponding NodeIds are equal.   *   * @param obj the other nodehandle .   * @return true if they are equal, false otherwise.   */  public abstract boolean equals(Object obj);  /**   * Hash codes for node handles. It is the hashcode of their corresponding   * NodeId's.   *   * @return a hash code.   */  public abstract int hashCode();}

⌨️ 快捷键说明

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