All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xin.bluesky.leiothrix.server.action.LaunchLog Maven / Gradle / Ivy

The newest version!
package xin.bluesky.leiothrix.server.action;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * @author 张轲
 */
class LaunchLog {

    private Map map = new HashMap();

    private LogDetail createLogDetailIfAbsent(String workerIp) {
        LogDetail detail = map.get(workerIp);
        if (detail == null) {
            detail = new LogDetail();
            map.put(workerIp, detail);
        }
        return detail;
    }

    public void addJarPath(String workerIp, String jarPath) {
        LogDetail detail = createLogDetailIfAbsent(workerIp);
        detail.setJarPath(jarPath);
    }

    public void incProcessorNum(String workerIp) {
        LogDetail detail = createLogDetailIfAbsent(workerIp);
        detail.setProcessorNum(detail.getProcessorNum() + 1);
    }

    public void setAvailableProcessNumBeforeLuanch(String workerIp, int numBeforeLuanch) {
        LogDetail detail = createLogDetailIfAbsent(workerIp);
        detail.setProcessNumBeforeLaunch(numBeforeLuanch);
    }

    public String getJarPath(String workerIp) {
        LogDetail detail = createLogDetailIfAbsent(workerIp);
        return detail.getJarPath();
    }

    public int getProcessorNum(String workerIp) {
        LogDetail detail = createLogDetailIfAbsent(workerIp);
        return detail.getProcessorNum();
    }

    public int getAvailableProcessNumBeforeLuanch(String workerIp) {
        LogDetail detail = createLogDetailIfAbsent(workerIp);
        return detail.getProcessNumBeforeLaunch();
    }

    public int getTotalProcessorNum() {
        int totalProcessorNum = 0;
        for (Iterator iterator = map.values().iterator(); iterator.hasNext(); ) {
            totalProcessorNum += iterator.next().getProcessorNum();
        }
        return totalProcessorNum;
    }

    private class LogDetail {

        private String jarPath;

        private int processNumBeforeLaunch;

        private int processorNum;

        public String getJarPath() {
            return jarPath;
        }

        public void setJarPath(String jarPath) {
            this.jarPath = jarPath;
        }

        public int getProcessNumBeforeLaunch() {
            return processNumBeforeLaunch;
        }

        public void setProcessNumBeforeLaunch(int processNumBeforeLaunch) {
            this.processNumBeforeLaunch = processNumBeforeLaunch;
        }

        public int getProcessorNum() {
            return processorNum;
        }

        public void setProcessorNum(int processorNum) {
            this.processorNum = processorNum;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy