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.4
Committed: Wed Dec 13 12:57:38 2000 UTC (23 years, 5 months ago) by ajm
Branch: MAIN
Changes since 1.3: +76 -36 lines
Log Message:
now componenterized
also supports new toString standard

File Contents

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