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.10
Committed: Mon Jan 22 02:57:38 2001 UTC (23 years, 3 months ago) by tdb
Branch: MAIN
CVS Tags: CLI_PROTOCOL_1_0
Changes since 1.9: +8 -5 lines
Log Message:
All files changed to now incorporate a Queue. Makes the whole setup much tidier
and will enable levels of buffering.

File Contents

# User Rev Content
1 ajm 1.3 //---PACKAGE DECLARATION---
2     package uk.ac.ukc.iscream.clientinterface;
3    
4     //---IMPORTS---
5 tdb 1.6 import uk.ac.ukc.iscream.componentmanager.*;
6 ajm 1.3 import uk.ac.ukc.iscream.core.*;
7 tdb 1.7 import uk.ac.ukc.iscream.util.*;
8 ajm 1.3
9     /**
10 ajm 1.4 * 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 ajm 1.3 *
16 tdb 1.7 * @author $Author: tdb1 $
17 tdb 1.10 * @version $Id: ClientInterfaceMain.java,v 1.9 2001/01/22 01:46:51 tdb1 Exp $
18 ajm 1.3 */
19 tdb 1.8 public class ClientInterfaceMain implements Component {
20 ajm 1.3
21     //---FINAL ATTRIBUTES---
22    
23     /**
24     * The current CVS revision of this class
25     */
26 tdb 1.10 public static final String REVISION = "$Revision: 1.9 $";
27 ajm 1.3
28     //---STATIC METHODS---
29    
30 ajm 1.4 //---CONSTRUCTORS---
31 ajm 1.3
32 ajm 1.4 //---PUBLIC METHODS---
33 ajm 1.3
34 ajm 1.4 /**
35     * This method starts the ClientInterface
36     */
37     public void start() throws ComponentStartException {
38    
39     _logger.write(toString(), Logger.SYSINIT, "coming up");
40 ajm 1.3
41     // configuration variables we require
42     String ourName = null;
43     int listenPort = 0;
44    
45 ajm 1.4 Configuration config = _refman.getCM().getConfiguration("ClientInterface");
46 ajm 1.3 if (config == null) {
47 ajm 1.4 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 ajm 1.3 } 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 ajm 1.4 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 ajm 1.3
61     }
62     }
63     // now we have the name of the interface we set it
64 ajm 1.4 NAME = ourName;
65    
66     _logger.write(toString(), Logger.SYSINIT, "configured");
67 tdb 1.10
68     // Setup a Queue
69     Queue queue = new Queue();
70    
71 ajm 1.3 // ClientInterfaceServant start (for inbound data)
72 ajm 1.4 _logger.write(toString(), Logger.DEBUG, "starting servant for inbound data");
73 tdb 1.10 ClientInterfaceServant ciServant = new ClientInterfaceServant(queue);
74 ajm 1.4 _refman.bindToOrb(ciServant, "iscream.ClientInterface." + ClientInterfaceMain.NAME);
75 ajm 1.3
76 tdb 1.10 TCPClientListener tcpClientListener = new TCPClientListener(listenPort, queue);
77 tdb 1.9 tcpClientListener.start();
78 ajm 1.3
79 ajm 1.4 _logger.write(toString(), Logger.SYSINIT, "started");
80 ajm 1.3 }
81    
82 ajm 1.4 /**
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 ajm 1.5 NAME,
94 ajm 1.4 getClass().getName(),
95     REVISION);
96     }
97 ajm 1.3
98     //---PRIVATE METHODS---
99    
100     //---ACCESSOR/MUTATOR METHODS---
101    
102     //---ATTRIBUTES---
103 ajm 1.4
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 ajm 1.3 //---STATIC ATTRIBUTES---
116    
117 ajm 1.4 /**
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     }