📄 kernel2.java
字号:
package com.ict.netcom2.kernel;
import com.ict.netcom2.hardware.Card;
import com.ict.netcom2.task.*;
public class Kernel2 {
public ProbeManager2 pm;
private String ip;
private int taskType = -1;
private long delay = -1;
private boolean isRoutine = false;
public Kernel2() {
/*
ProbeManager2 tmp = Serializer.read();
if (tmp != null) {
pm = tmp;
}
else {
pm = new ProbeManager2();
}*/
pm = new ProbeManager2();
}
public String register(String cmd) {
String[] strs = checkCmd(cmd, 4);
if (strs == null) {
return null;
}
int status = pm.register(strs[1], Integer.parseInt(strs[2]), strs[3]);
switch (status) {
case 0:
return "Register OK.";
default:
return "Register error.";
}
}
public String addProbe(String cmd) {
String[] strs = checkCmd(cmd, 2);
if (strs == null) {
return "usage: addprobe [ip]";
}
pm.createProbe(strs[1]);
return "Probe "+strs[1]+" added.";
}
public String selectTaskType(String cmd) {
String[] strs = checkCmd(cmd, 4);
if (strs == null) {
return null;
}
ip = strs[1];
delay = Long.parseLong(strs[2]);
isRoutine = (strs[3].equalsIgnoreCase("0"));
return "Select task type:\n"
+"01: Passive Ethernet measure.\n"
+"03: Http performance measure";
}
public String inputTaskParam(String type) {
taskType = Integer.parseInt(type);
switch (taskType) {
case TaskType.PASSIVE_ETH:
return "Input passive Ethernet parformance measure param:\n"
+"fromat: [inCardSlotNum] [outCardSlotNum] [linkId] [updatePeriod] [enterMacAddredd]\n"
+"example: 1 1 2 10 0:1:2:3:4:5";
case TaskType.HTTP_PERF:
return "Input Http parformance measure param:\n"
+"fromat: [testTimes] [port] [interval] [prototype] [url]\n"
+"example: 2 80 10 2 www.baidu.com";
default:
return null;
}
}
public String addTask(String param) {
String[] strs;
int id;
switch (taskType) {
case TaskType.PASSIVE_ETH:
strs = checkCmd(param, 5);
if (strs == null){
return null;
}
PasvEthTaskParam petParam = new PasvEthTaskParam(
new Card(Integer.parseInt(strs[0]), 0),
new Card(Integer.parseInt(strs[1]), 0),
Integer.parseInt(strs[2]),
Integer.parseInt(strs[3]),strs[4]);
id = pm.addTask(ip, delay, isRoutine, petParam)[0];
return "Task "+id+" added.";
case TaskType.HTTP_PERF:
strs = checkCmd(param, 5);
if (strs == null) {
return null;
}
HttpPerfTaskParam httpParam = new HttpPerfTaskParam(
Long.parseLong(strs[0]), Integer.parseInt(strs[1]),
Integer.parseInt(strs[2]), Integer.parseInt(strs[3]),
strs[4]);
id = pm.addTask(ip, delay, isRoutine, httpParam)[0];
return "Task "+id+" added.";
default:
return null;
}
}
public String stopTask(String cmd) {
String[] strs = checkCmd(cmd, 3);
if (strs == null) {
return null;
}
int[] ret = pm.stopTask(strs[1], Integer.parseInt(strs[2]));
if (ret[1] == 0) {
return "Task "+ret[0]+" stopped.";
}
else if (ret[1] == 1){
return "Task "+ret[0]+" do not exist.";
}
else {
return "Error.";
}
}
public String queryTask(String cmd) {
String[] strs = checkCmd(cmd, 2);
if (strs == null) {
return null;
}
String ret = pm.queryTask(strs[1]);
return ret;
}
public String queryThread(String cmd) {
String[] strs = checkCmd(cmd, 2);
if (strs == null) {
return null;
}
return pm.queryThreads(strs[1]);
}
public String querySysInfo(String cmd) {
String[] strs = checkCmd(cmd, 2);
if (strs == null) {
return null;
}
return pm.querySysInfo(strs[1]);
}
public String getResult(String cmd) {
String[] strs = checkCmd(cmd, 3);
if (strs == null) {
return null;
}
return pm.getResult(strs[1], Integer.parseInt(strs[2]));
}
private String[] checkCmd(String cmd, int i) {
String[] strs = cmd.split(" ");
if (strs.length >= i) {
return strs;
}
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -