您当前的位置: 首页 >  Java
  • 0浏览

    0关注

    1477博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

fisco bcos PerformanceDT.java 源码解析阅读注释

软件工程小施同学 发布时间:2021-04-27 16:11:04 ,浏览量:0

 

package org.fisco.bcos.channel.test.parallel.parallelok;

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DagUserMgr {
    private static Logger logger = LoggerFactory.getLogger(DagUserMgr.class);

    // 用户列表
    private List userList = new ArrayList();

    // 保存用户列表的文件
    private String file = null;

    // 命令类型,用途
    private String testType = "transfer";

    // 设置测试合约的地址
    private String parallelokAddr = "";

    public void setContractAddr(String addr) {
        this.parallelokAddr = addr;
    }

    public String getContractAddr() {
        return this.parallelokAddr;
    }

    // 得到用户列表
    public List getUserList() {
        return userList;
    }

    public void setUserList(List userList) {
        this.userList = userList;
    }

    // 得到保存用户的文件
    public String getFile() {
        return file;
    }

    public void setFile(String file) {
        this.file = file;
    }

    // 往列表新增用户
    public synchronized void addUser(DagTransferUser user) {
        userList.add(user);
    }

    public boolean isEmpty() {
        return userList.isEmpty();
    }

    // 根据下标得到转账人
    public DagTransferUser getFrom(int idx) {
        assert !isEmpty() : "Has no user.";
        return userList.get(idx % userList.size());
    }

    // 根据下标得到收款人
    public DagTransferUser getTo(int idx) {
        assert !isEmpty() : "Has no user.";
        int mid = userList.size() / 2;
        return userList.get((idx + mid) % userList.size());
    }

    // 根据下标得到下一个人
    public DagTransferUser getNext(int idx) {
        return userList.get((idx + 1) % userList.size());
    }

    // 创建用户集
    public void writeDagTransferUser() throws IOException {
        if (file == null) {
            return;
        }
        logger.info("file {}, begin load.", file);

        BufferedWriter bw = null;
        try {
            bw = new BufferedWriter(new FileWriter(new File(file)));

            // Write contract address first
            // 写入合约地址
            bw.write(parallelokAddr + "\n");

            // And write user
            for (int i = 0; i < userList.size(); i++) {
                bw.write(userList.get(i).getUser() + "\n");
                logger.trace(" write user , user is {}", userList.get(i).getUser());
            }

            bw.flush();

        } finally {
            if (bw != null) {
                bw.close();
            }
        }

        logger.info("file {}, load end, count is {}.", file, userList.size());

        System.out.println(" Write DagTransferUser end, count is " + userList.size());
    }

    // 从文件中载入用户集
    public void loadDagTransferUser() throws IOException {
        if (file == null) {
            return;
        }
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(new File(file)));

            String line = null;

            // Get contract addr first
            if ((line = br.readLine()) != null) {
                parallelokAddr = line;
            }

            // And get user
            while ((line = br.readLine()) != null) {
                line = line.trim();
                if (!line.isEmpty()) {
                    DagTransferUser user = new DagTransferUser();
                    user.setUser(line);
                    addUser(user);
                    // System.out.println("load DagTransferUser ==>> " + line);
                }
            }

        } finally {
            if (br != null) {
                br.close();
            }
        }

        logger.info("file {}, load end, count is {}.", file, userList.size());

        System.out.println("Load DagTransferUser end, count is " + userList.size());
    }

    // 得到测试类型
    public String getTestType() {
        return testType;
    }

    // 设置测试类型
    public void setTestType(String testType) {
        this.testType = testType;
    }
}

 

关注
打赏
1665320866
查看更多评论
立即登录/注册

微信扫码登录

0.0428s