ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/clientinterface/ClientInterfaceMain.java
Revision: 1.11
Committed: Tue Jan 23 16:56:31 2001 UTC (23 years, 3 months ago) by tdb
Branch: MAIN
Changes since 1.10: +6 -6 lines
Log Message:
Changed to support the new Protocol 1.1. This protocol supports selecting the
hosts a client wishes to monitor at connect time.

File Contents

# Content
1 //---PACKAGE DECLARATION---
2 package uk.ac.ukc.iscream.clientinterface;
3
4 //---IMPORTS---
5 import uk.ac.ukc.iscream.componentmanager.*;
6 import uk.ac.ukc.iscream.core.*;
7 import uk.ac.ukc.iscream.util.*;
8
9 /**
10 * This class starts the real time clients
11 * client interface.
12 * This is an iscream component that sends data
13 * direct to clients running on desktops to provide
14 * real time information.
15 *
16 * @author $Author: tdb1 $
17 * @version $Id: ClientInterfaceMain.java,v 1.10 2001/01/22 02:57:38 tdb1 Exp $
18 */
19 public class ClientInterfaceMain implements Component {
20
21 //---FINAL ATTRIBUTES---
22
23 /**
24 * The current CVS revision of this class
25 */
26 public static final String REVISION = "$Revision: 1.10 $";
27
28 //---STATIC METHODS---
29
30 //---CONSTRUCTORS---
31
32 //---PUBLIC METHODS---
33
34 /**
35 * This method starts the ClientInterface
36 */
37 public void start() throws ComponentStartException {
38
39 _logger.write(toString(), Logger.SYSINIT, "coming up");
40
41 // configuration variables we require
42 String ourName = null;
43 int listenPort = 0;
44
45 Configuration config = _refman.getCM().getConfiguration("ClientInterface");
46 if (config == null) {
47 System.err.println("CRITICAL:Unable to obtain configuration" +
48 "\n Advise you check the i-scream log for more information.");
49 _logger.write(toString(), Logger.FATAL, "ERROR - unable to obtain configuration");
50 System.exit(1);
51 } else {
52 try {
53 ourName = config.getProperty("RootFilter.realtimeInterfaceName");
54 listenPort = Integer.parseInt(config.getProperty("ClientInterface.listenPort"));
55 } catch (org.omg.CORBA.MARSHAL e) {
56 System.err.println ("CRITICAL:Unable to obtain required configuration property" +
57 "\n Advise you check the i-scream log for more information.");
58 _logger.write(toString(), Logger.FATAL, "ERROR - required configuration property not present");
59 System.exit(1);
60
61 }
62 }
63 // now we have the name of the interface we set it
64 NAME = ourName;
65
66 _logger.write(toString(), Logger.SYSINIT, "configured");
67
68 // Setup a PacketSorter
69 PacketSorter ps = new PacketSorter();
70
71 // ClientInterfaceServant start (for inbound data)
72 _logger.write(toString(), Logger.DEBUG, "starting servant for inbound data");
73 ClientInterfaceServant ciServant = new ClientInterfaceServant(ps);
74 _refman.bindToOrb(ciServant, "iscream.ClientInterface." + ClientInterfaceMain.NAME);
75
76 TCPClientListener tcpClientListener = new TCPClientListener(listenPort, ps);
77 tcpClientListener.start();
78
79 _logger.write(toString(), Logger.SYSINIT, "started");
80 }
81
82 /**
83 * Overrides the {@link java.lang.Object#toString() Object.toString()}
84 * method to provide clean logging (every class should have this).
85 *
86 * This uses the uk.ac.ukc.iscream.util.NameFormat class
87 * to format the toString()
88 *
89 * @return the name of this class and its CVS revision
90 */
91 public String toString() {
92 return FormatName.getName(
93 NAME,
94 getClass().getName(),
95 REVISION);
96 }
97
98 //---PRIVATE METHODS---
99
100 //---ACCESSOR/MUTATOR METHODS---
101
102 //---ATTRIBUTES---
103
104 /**
105 * This holds a reference to the
106 * system logger that is being used.
107 */
108 private Logger _logger = ReferenceManager.getInstance().getLogger();
109
110 /**
111 * A reference to the reference manager in use
112 */
113 private ReferenceManager _refman = ReferenceManager.getInstance();
114
115 //---STATIC ATTRIBUTES---
116
117 /**
118 * The friendly name for this component, used by
119 * all related classes.
120 * This is set from the configuration.
121 */
122 public static String NAME;
123
124 }