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, 9 months ago) by ab11
Branch: MAIN
Log Message:
Initial version. Untested.

File Contents

# User Rev Content
1 ab11 1.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