ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/java/JavaHost.java
(Generate patch)

Comparing projects/cms/source/host/java/JavaHost.java (file contents):
Revision 1.1 by ab11, Mon Nov 27 19:48:03 2000 UTC vs.
Revision 1.5 by ab11, Fri Dec 8 15:44:56 2000 UTC

# Line 1 | Line 1
1 < /* Java Host for i-scream
2 < * Written by Ash Beeson ab11
3 < * Version History:
4 < *   1.0 12/11/00 Inital working version
5 < */
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$
11 + * @version $Id$
12 + */
13   class JavaHost {
14 <        
15 <        public JavaHost( String serverName, int port ){
16 <                // create a connection to the configurator
17 <                Config config = new Config(serverName, port);
18 <                // the config class knows what values it wants to get from
19 <                // the configurator
20 <                
21 <                // create a SystemMonitor object and pass the confifurator
22 <                // as a param so it knows what to do!
23 <                SystemMonitor sysMon = new SystemMonitor(config);
24 <                
25 <                while ( true ){
26 <                        // keep going for ever and ever ;)
27 <                        // send a udp packet to the filter declared in config
28 <                        // send it the xml packet created by getInfo()
29 <                        LowLevelNet.sendUDPPacket(config, sysMon.getInfo());    
30 <                }
31 <                
32 <        } // public javahost
33 <        
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 >                        config.sendHeartBeat();
77 >                        if ( config.reloadConfig() ){
78 >                            System.out.println("Resarting System");
79 >                            break;      
80 >                        }
81 >                 }
82 >                 catch ( InterruptedException e ){
83 >                        // do nothing
84 >                 }
85 >            }
86 >            else {
87 >                try {
88 >                    long sleeptime = nextUDP - currentTime;
89 >                        if ( sleeptime > 0 ){
90 >                                Thread.sleep(sleeptime);
91 >                        }
92 >                        nextUDP += udpcheckInterval;
93 >                        // send a heartbeat
94 >                        System.out.println("Sending UDP Packet");
95 >                        LowLevelNet.sendUDPPacket(config, sysMon.getInfo());  
96 >            
97 >                 }
98 >                 catch ( InterruptedException e ){
99 >                        // do nothing
100 >                 }      
101 >            }
102 >            
103 >            
104 >            
105 >        } // while
106 >        
107 >          
108 >    } // public javahost
109 >
110 >
111 > //---PUBLIC METHODS---
112 >
113 > //---PRIVATE METHODS---
114 >
115 > //---ACCESSOR/MUTATOR METHODS---
116 >
117 > //---ATTRIBUTES---
118 >
119 >    private long udpcheckInterval;
120 >    private long tcpcheckInterval;
121 >    private final long defaultUpdateTime = 60000;
122 >
123 >
124 > //---STATIC ATTRIBUTES---
125 >
126   } // class

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines