ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/java/DecodeCPU_TXT.java
Revision: 1.1
Committed: Thu Dec 7 18:26:19 2000 UTC (23 years, 11 months ago) by ab11
Branch: MAIN
Log Message:
Initial version. Untested.

File Contents

# Content
1 import java.io.*;
2 import java.util.*;
3
4 class DecodeCPU_TXT {
5
6 XMLFormatter packet;
7
8 public DecodeCPU_TXT(String _file){
9
10 // open the file and read in all the relevant details
11 try {
12 BufferedReader in = new BufferedReader(new FileReader(_file));
13 String line = new String();
14
15 // get rid of the first output (it doesn't contain cpu info)
16 for ( int i=0; i < 7; i++ ){
17 line = in.readLine();
18 System.out.println("Throwing away line: "+line);
19 }
20 // first line has the format: load averages: 0.30, 0.27, 0.29 16:58:10
21 // tokenize it using spaces as delimiters?
22 StringTokenizer tok = new StringTokenizer(line,":",false);
23 tok.nextToken(); // load averages:
24 String load1 = tok.nextToken(" ,"); // "0.30"
25 String load2 = tok.nextToken(); // "0.27"
26 String load3 = tok.nextToken(); // "0.29"
27 String sTime = tok.nextToken(); // "16:58:10"
28
29 // get the next line
30 line = in.readLine(); // 632 processes: 591 sleeping, 10 zombie, 30 stopped, 1 on cpu
31 tok = new StringTokenizer(line," ",false);
32 String totalProcesses = tok.nextToken(); // "632"
33 String sleeping = tok.nextToken(": ,"); // "591"
34 String zombie = tok.nextToken(); // "10"
35 String stopped = tok.nextToken(","); // "30"
36
37 // get the next line
38 line = in.readLine(); // CPU states: 71.1% idle, 1.8% user, 4.8% kernel, 22.2% iowait, 0.0% swap
39 tok = new StringTokenizer(line,":%,",false);
40 String idle = tok.nextToken(); // "71.1"
41 String user = tok.nextToken(",%"); // " 1.8"
42 String kernel = tok.nextToken(); // " 4.8"
43 String iowait = tok.nextToken(); // " 22.2"
44 String swap = tok.nextToken(); // " 0.0"
45
46 line = in.readLine(); // Memory: 4096M real, 2380M free, 1237M swap in use, 9774M swap free
47 tok = new StringTokenizer(line,": ,",false);
48 tok.nextToken(); // Memory:
49 String real = tok.nextToken(); // "4096M"
50 String free = tok.nextToken(", "); // "2380M"
51 String swapInUse = tok.nextToken(); // "1237M"
52 String swapFree = tok.nextToken(", "); // "9774M"
53
54 // done now make it into an xml packet ;)
55
56 packet = new XMLFormatter("core");
57 packet.addNest("load");
58 packet.addElement("1",load1);
59 packet.addElement("2",load2);
60 packet.addElement("3",load3);
61 packet.closeNest();
62 packet.addNest("processes");
63 packet.addElement("total",totalProcesses);
64 packet.addElement("sleeping",sleeping);
65 packet.addElement("zombie",zombie);
66 packet.addElement("stopped",stopped);
67 packet.closeNest();
68 packet.addNest("cpu");
69 packet.addElement("idle",idle);
70 packet.addElement("user",user);
71 packet.addElement("kernel",kernel);
72 packet.addElement("iowait",iowait);
73 packet.addElement("swap",swap);
74 packet.closeNest();
75 packet.addNest("memory");
76 packet.addElement("real",real);
77 packet.addElement("free",free);
78 packet.addElement("swapinuse",swapInUse);
79 packet.addElement("swapfree",swapFree);
80 packet.closeNest();
81
82 }
83 catch ( IOException e ){
84 // probably couldn't find the file
85 }
86
87
88 }
89
90 public String getItems(){
91 // return the xml
92 return packet.returnXML();
93
94 }
95
96
97 } // class