ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/idl/iscream.idl
Revision: 1.24
Committed: Mon May 5 22:05:01 2003 UTC (21 years, 6 months ago) by tdb
Branch: MAIN
Changes since 1.23: +3 -10 lines
Log Message:
Tidy up of the client interface code - more commonly known as the
"right hand side of the server". Right since the start the filter
side of the server has been nice and tree like - every Filter sent
data to another Filter. At the top of the tree there was a "special"
Filter known as the RootFilter, which to the other Filters just
looked like a normal Filter. This was nice, and simple, and expandable.

The Client Interface on the other hand was messy. The root filter
had some hacky wrapper threads which pulled from a queue and pushed
to the relevant client interfaces (one for real time stuff, and the
other for databases). There was no simple room for expandability -
it was all hardwired to do just what was needed at the time.

This commit changes that. A Client Interface now connects to another
Client Interface, with a special one being found in the RootFilter
(yes, maybe that needs a name change now :-). So we can chain client
interfaces, and move other bits and bobs around in the server - for
example, alerting no longer needs to be connected to the Client
Interface, it can connect straight to the RootFilter (or, wherever
the config tells it ;).

Hopefully this sanitizes the underlying layout of the server a bit.

As a final note, I dropped the DBInterface. This used to insert
data in to a MySQL database. We've long since stopped using that,
and it's fallen behind and is way out of date. For now, it's gone
in to the attic.

File Contents

# User Rev Content
1 tdb 1.1 //
2 tdb 1.21 // i-scream central monitoring system
3 tdb 1.22 // http://www.i-scream.org.uk
4 tdb 1.21 // Copyright (C) 2000-2002 i-scream
5     //
6     // This program is free software; you can redistribute it and/or
7     // modify it under the terms of the GNU General Public License
8     // as published by the Free Software Foundation; either version 2
9     // of the License, or (at your option) any later version.
10     //
11     // This program is distributed in the hope that it will be useful,
12     // but WITHOUT ANY WARRANTY; without even the implied warranty of
13     // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     // GNU General Public License for more details.
15     //
16     // You should have received a copy of the GNU General Public License
17     // along with this program; if not, write to the Free Software
18     // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19     //
20    
21     //
22 tdb 1.1 // This class provides infomation about the CORBA
23 tdb 1.19 // interface for the server side of the i-scream system.
24 tdb 1.1 //
25 tdb 1.24 // $Id: iscream.idl,v 1.23 2003/02/24 20:18:46 tdb Exp $
26 tdb 1.1 //
27 tdb 1.19 module uk { module org { module iscream { module cms { module server {
28 tdb 1.1 module core {
29    
30     // The Logger interface, provides a corba object that
31     // all classes can use to log system and error information.
32     interface Logger {
33 tdb 1.2 void write(in string source, in long verbosity, in string message);
34 tdb 1.3 // Verbosity levels
35     const long FATAL=0;
36     const long ERROR=1;
37     const long WARNING=2;
38     const long SYSMSG=3;
39     const long SYSINIT=4;
40     const long DEBUG=5;
41 tdb 1.1 };
42    
43     // The Configuration interface, provides a CORBA object that
44     // all classes can use to get their configuration.
45     interface Configuration {
46     string getProperty(in string key);
47     long long getLastModified();
48 tdb 1.7 string getFileList();
49 tdb 1.16 void disconnect();
50 tdb 1.1 };
51    
52 tdb 1.5 // The ConfigurationManager interface, provides a CORBA object that
53 tdb 1.1 // all classes can use to obtain their individual configuration.
54 ajm 1.4 interface ConfigurationManager {
55 tdb 1.1 Configuration getConfiguration(in string source);
56     boolean isModified(in string source, in long long currentModified);
57     };
58    
59     // end core
60     };
61    
62     module filter {
63 tdb 1.8 interface Filter {
64     void receiveXML(in string xml);
65 tdb 1.20 };
66     interface FilterInfo {
67 tdb 1.9 string getHostName();
68     string getUDPPort();
69 tdb 1.8 };
70 tdb 1.9
71 tdb 1.1 // end filter
72 tdb 1.11 };
73    
74 tdb 1.24 module clientinterface {
75 tdb 1.13 interface Client {
76     void receiveXML(in string xml);
77     };
78 tdb 1.14 interface CorbaControlHandler {
79 tdb 1.13 boolean startData();
80     boolean stopData();
81 tdb 1.12 boolean setHostList(in string hostList);
82 tdb 1.17 void disconnect();
83 tdb 1.12 };
84     interface CorbaClientListener {
85 tdb 1.24 CorbaControlHandler connect(in Client client, in string name);
86 tdb 1.12 };
87     // end clientinterface
88 tdb 1.1 };
89    
90 tdb 1.20 // end uk.org.iscream.cms.server
91 tdb 1.19 };};};};};