ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/java/SystemMonitor.java
Revision: 1.6
Committed: Thu Dec 7 23:21:13 2000 UTC (23 years, 9 months ago) by tdb
Branch: MAIN
Changes since 1.5: +17 -33 lines
Log Message:
Changed to go with the new Decoding class stuff.

File Contents

# User Rev Content
1 ab11 1.2 //---PACKAGE DECLARATION---
2    
3     //---IMPORTS---
4    
5 ab11 1.5 import java.io.*;
6 tdb 1.6 import java.net.*;
7     import java.util.*;
8 ab11 1.3
9 ab11 1.2 /**
10     * Gathers system information then outputs it as XML
11     * Collects data based on properties gained from the configurator
12     * then packages these up using XMLFormatter and outputs them if
13     * the timeout has passed.
14     *
15     * @author $Author: ab11 $
16 tdb 1.6 * @version $Id: SystemMonitor.java,v 1.5 2000/12/07 18:25:37 ab11 Exp $
17 ab11 1.2 */
18 ab11 1.1 class SystemMonitor {
19    
20 ab11 1.2 //---FINAL ATTRIBUTES---
21    
22     //---STATIC METHODS---
23    
24     //---CONSTRUCTORS---
25    
26     /**
27     * Public constructor for the class. Takes in a Config object to gain its
28     * properties from.
29     *
30     */
31     public SystemMonitor( Config config ){
32     // create a new instace, get the info we need out of config
33     // like things to monitor
34    
35     lastCheck = System.currentTimeMillis();
36 tdb 1.6 sequence = 1;
37 ab11 1.2
38    
39     // why oh why wont ultra edit let me put Long in the next line? oh its trying to
40     // correct keywords =|
41 ab11 1.4 try {
42     udpcheckInterval = Long.parseLong(config.getProperty("UDPUpdateTime")) * 1000;
43     }
44     catch ( NumberFormatException e ){
45     System.out.println("The value for UDPUpdateTime is invalid, using a default");
46     // 5 mins
47     udpcheckInterval = 5000 * 60;
48     }
49 ab11 1.3 // make the check interval into seconds
50 ab11 1.2
51     }
52    
53     //---PUBLIC METHODS---
54    
55     /**
56     * Gathers system information and will black until the timeout has passed.
57     *
58     * @return the system information in an XML packet
59     */
60     public String getInfo(){
61     // called to retrieve the stored averages and output them as a XML string
62 tdb 1.6 String host = new String();
63     String ip = new String();
64 ab11 1.5 try {
65 tdb 1.6 host = InetAddress.getLocalHost().getHostName();
66     ip = InetAddress.getLocalHost().getHostAddress();
67     } catch(UnknownHostException e) {
68     System.out.println(e);
69 ab11 1.5 }
70 tdb 1.6 String date = Long.toString(System.currentTimeMillis());
71     XMLFormatter xml = new XMLFormatter("packet", "machine_name=\""+host+"\" ip=\""+ip+"\" date=\""+date+"\" seq_no=\""+sequence+"\"");
72    
73     // get and decode the data
74     DecodeCPU_TXT details = new DecodeCPU_TXT();
75    
76     // add the decoded info
77 ab11 1.5 xml.addString(details.getItems());
78    
79    
80 ab11 1.2 // MUST FIX THIS..!!!!
81 ab11 1.3 try {
82 ab11 1.4 long updateIn = ( lastCheck + udpcheckInterval )-System.currentTimeMillis();
83     if ( updateIn > 0 ){
84     Thread.sleep(updateIn);
85     }
86     else
87     {
88     Thread.sleep(defaultUpdateTime);
89     }
90 ab11 1.3 }
91     catch( InterruptedException e ){
92     System.out.println("Sleep interrupted");
93 ab11 1.2 }
94    
95     // increment sequence.
96     sequence++;
97 ab11 1.3 lastCheck = System.currentTimeMillis();
98 ab11 1.2
99     // finally return a string
100     return xml.returnXML();
101     } // getinfo()
102    
103     //---PRIVATE METHODS---
104    
105     //---ACCESSOR/MUTATOR METHODS---
106    
107     //---ATTRIBUTES---
108 ab11 1.1
109     private long lastCheck;
110     private int sequence;
111 ab11 1.4 private long udpcheckInterval;
112     private final long defaultUpdateTime = 60000;
113 ab11 1.2
114     //---STATIC ATTRIBUTES---
115 ab11 1.1
116     } // class