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/ClientInterfaceServant.java
Revision: 1.3
Committed: Wed Dec 13 12:57:38 2000 UTC (23 years, 5 months ago) by ajm
Branch: MAIN
Changes since 1.2: +110 -89 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.core.*;
6     import uk.ac.ukc.iscream.util.*;
7     import java.util.LinkedList;
8     import java.util.Iterator;
9    
10     /**
11     * A client interface servant
12     * This keeps a track of all connected clients to
13     * the system and passes data to their handlers.
14     *
15     * Currently it has limited client management facilities.
16     *
17     * @author $Author: ajm4 $
18     * @version $Id: ClientInterfaceServant.java,v 1.2 2000/12/04 18:42:19 ajm4 Exp $
19     */
20     class ClientInterfaceServant extends ClientInterfacePOA {
21    
22     //---FINAL ATTRIBUTES---
23    
24     /**
25     * The current CVS revision of this class
26     */
27     public final String REVISION = "$Revision: 1.2 $";
28    
29     //---STATIC METHODS---
30    
31     //---CONSTRUCTORS---
32    
33     /**
34     * Creates a new ClientInterfaceServant.
35     */
36     public ClientInterfaceServant() {
37     // here would be a nice place to pass in local clients
38     _clients = new LinkedList();
39     _logger.write(toString(), Logger.SYSINIT, "created");
40     }
41    
42     //---PUBLIC METHODS---
43    
44     /**
45     * Method to receive a string over corba.
46     *
47     * @param xml the String of XML to print out
48     */
49     public void receiveXML(String xml) {
50     _logger.write(toString(), Logger.DEBUG, "got data, passing to clients");
51     Iterator i = _clients.iterator();
52     while(i.hasNext()) {
53     ((ClientHandler) i.next()).receiveXML(xml);
54     }
55     }
56    
57     /**
58     * Simply adds clients to a linked list
59     *
60     * @param newClient a reference to the client to add
61     */
62     public void register(ClientHandler newClient) {
63     _logger.write(toString(), Logger.SYSMSG, "registered client - " + newClient.toString());
64     _clients.add(newClient);
65     }
66    
67     /**
68     * Overrides the {@link java.lang.Object#toString() Object.toString()}
69     * method to provide clean logging (every class should have this).
70     *
71     * This uses the uk.ac.ukc.iscream.util.NameFormat class
72     * to format the toString()
73     *
74     * @return the name of this class and its CVS revision
75     */
76     public String toString() {
77     return FormatName.getName(
78     _name,
79     getClass().getName(),
80     REVISION);
81     }
82    
83     //---PRIVATE METHODS---
84    
85     //---ACCESSOR/MUTATOR METHODS---
86    
87     //---ATTRIBUTES---
88    
89     /**
90     * This is the friendly identifier of the
91     * component this class is running in.
92     * eg, a Filter may be called "filter1",
93     * If this class does not have an owning
94     * component, a name from the configuration
95     * can be placed here. This name could also
96     * be changed to null for utility classes.
97     */
98     private String _name = ClientInterfaceMain.NAME;
99    
100     /**
101     * This holds a reference to the
102     * system logger that is being used.
103     */
104     private Logger _logger = ReferenceManager.getInstance().getLogger();
105    
106     private LinkedList _clients;
107    
108     //---STATIC ATTRIBUTES---
109    
110     }