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

📄 customdistribution.java

📁 pastry 协议在peersim下的仿真环境。测试无误。在eclipse下打开源文件夹为工程即可使用和做仿真实验。
💻 JAVA
字号:
package peersim.pastry;

import peersim.core.CommonState;
import peersim.config.Configuration;
import peersim.core.Network;
import java.math.BigInteger;

//______________________________________________________________________________________________
/**
 * This control initializes the whole network (that was already created by peersim) by assigning a
 * unique NodeId randomly generated, to every node (it does nothing else).
 * <p>Title: MSPASTRY</p>
 *
 * <p>Description: MsPastry implementation for PeerSim</p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: The Pastry Group</p>
 *
 * @author Elisa Bisoffi, Manuel Cortella
 * @version 1.0
 */
public class CustomDistribution implements peersim.core.Control {

    //______________________________________________________________________________________________
    private static final String PAR_PROT = "protocol";

    private int protocolID;
    private UniformRandomGenerator urg;


    //______________________________________________________________________________________________
    public CustomDistribution(String prefix) {

        protocolID = Configuration.getPid(prefix + "." + PAR_PROT);
        urg = new UniformRandomGenerator(MSPastryCommonConfig.BITS, CommonState.r);
    }


    //______________________________________________________________________________________________
    /**
     * Scan over the nodes in the network and assign a randomly generated NodeId in the space
     * 0..2^BITS, where BITS is a parameter from the pastry protocol (usually 128)
     * @return boolean always false
     */
    public boolean execute() {
       BigInteger tmp;
       for (int i = 0; i < Network.size(); ++i) {
           tmp = urg.generate();
           ((MSPastryProtocol)(Network.get(i).getProtocol(protocolID))).setNodeId(tmp);
       }

        return false;
    }

    //______________________________________________________________________________________________
} // End of class

⌨️ 快捷键说明

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