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

# Content
1 //---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 }