ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/java/JavaHost.java
Revision: 1.7
Committed: Mon Mar 19 17:30:17 2001 UTC (23 years, 8 months ago) by ab11
Branch: MAIN
CVS Tags: PROJECT_COMPLETION
Changes since 1.6: +43 -43 lines
Log Message:
Removed dead code and converted all tabs to spaces ready for printing.

File Contents

# Content
1 //---PACKAGE DECLARATION---
2
3 //---IMPORTS---
4
5 /**
6 * A small efficient JavaHost
7 * Designed to be used as a working design to build the C++ hosts on.
8 * Hopefully fully functional and thus can be used as part of a test rig.
9 *
10 * @author $Author: tdb1 $
11 * @version $Id: JavaHost.java,v 1.6 2001/01/24 01:25:59 tdb1 Exp $
12 */
13 class JavaHost {
14
15 //---FINAL ATTRIBUTES---
16
17 //---STATIC METHODS---
18
19 //---CONSTRUCTORS---
20
21 /**
22 * Constructor for the class. Takes in the hostname and port number
23 * of the Filter Manager.
24 *
25 */
26 public JavaHost( String serverName, int port ){
27 // create a connection to the filter manager
28 System.out.println("Creating connection with Filter Manager");
29 Config config = new Config(serverName, port);
30 // the config class knows what values it wants to get from
31 // the configuration system
32
33 // create a SystemMonitor object and pass the config
34 // as a param so it knows what to do!
35 System.out.println("Creating System Monitor");
36 SystemMonitor sysMon = new SystemMonitor(config);
37
38 try {
39 udpcheckInterval = Long.parseLong(config.getProperty("UDPUpdateTime")) * 1000;
40 System.out.println("Configured UDPUpdateTime");
41 }
42 catch ( NumberFormatException e ){
43 System.out.println("The value for UDPUpdateTime is invalid, using a default");
44 // 1 mins
45 udpcheckInterval = 1000 * 60; // 1 minute
46 }
47
48 try {
49 tcpcheckInterval = Long.parseLong(config.getProperty("TCPUpdateTime")) * 1000;
50 System.out.println("Configured TCPUpdateTime");
51 }
52 catch ( NumberFormatException e ){
53 System.out.println("The value for UDPUpdateTime is invalid, using a default");
54 // 10 mins
55 tcpcheckInterval = 10000 * 60; // 5 minutes
56 }
57
58 // the current time..
59 long currentTime = System.currentTimeMillis();
60 long nextUDP = currentTime + udpcheckInterval;
61 long nextTCP = currentTime + tcpcheckInterval;
62
63 while ( true ){
64 currentTime = System.currentTimeMillis();
65 // keep going for ever and ever ;)
66
67 if ( nextTCP < nextUDP ){
68 try {
69 long sleeptime = nextTCP - currentTime;
70 if ( sleeptime > 0 ){
71 Thread.sleep(sleeptime);
72 }
73 nextTCP += tcpcheckInterval;
74 // send a heartbeat
75 //System.out.println("Sending Heartbeat");
76 System.out.print("+");
77 config.sendHeartBeat();
78 if ( config.reloadConfig() ){
79 System.out.println("\nRestarting System");
80 break;
81 }
82 }
83 catch ( InterruptedException e ){
84 // do nothing
85 }
86 }
87 else {
88 try {
89 long sleeptime = nextUDP - currentTime;
90 if ( sleeptime > 0 ){
91 Thread.sleep(sleeptime);
92 }
93 nextUDP += udpcheckInterval;
94 // send a heartbeat
95 //System.out.println("Sending UDP Packet");
96 System.out.print(".");
97 LowLevelNet.sendUDPPacket(config, sysMon.getInfo());
98
99 }
100 catch ( InterruptedException e ){
101 // do nothing
102 }
103 }
104
105
106
107 } // while
108
109
110 } // public javahost
111
112
113 //---PUBLIC METHODS---
114
115 //---PRIVATE METHODS---
116
117 //---ACCESSOR/MUTATOR METHODS---
118
119 //---ATTRIBUTES---
120
121 private long udpcheckInterval;
122 private long tcpcheckInterval;
123 private final long defaultUpdateTime = 60000;
124
125
126 //---STATIC ATTRIBUTES---
127
128 } // class