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 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

# Content
1 //
2 // i-scream central monitoring system
3 // http://www.i-scream.org.uk
4 // 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 // This class provides infomation about the CORBA
23 // interface for the server side of the i-scream system.
24 //
25 // $Id: iscream.idl,v 1.23 2003/02/24 20:18:46 tdb Exp $
26 //
27 module uk { module org { module iscream { module cms { module server {
28 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 void write(in string source, in long verbosity, in string message);
34 // 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 };
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 string getFileList();
49 void disconnect();
50 };
51
52 // The ConfigurationManager interface, provides a CORBA object that
53 // all classes can use to obtain their individual configuration.
54 interface ConfigurationManager {
55 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 interface Filter {
64 void receiveXML(in string xml);
65 };
66 interface FilterInfo {
67 string getHostName();
68 string getUDPPort();
69 };
70
71 // end filter
72 };
73
74 module clientinterface {
75 interface Client {
76 void receiveXML(in string xml);
77 };
78 interface CorbaControlHandler {
79 boolean startData();
80 boolean stopData();
81 boolean setHostList(in string hostList);
82 void disconnect();
83 };
84 interface CorbaClientListener {
85 CorbaControlHandler connect(in Client client, in string name);
86 };
87 // end clientinterface
88 };
89
90 // end uk.org.iscream.cms.server
91 };};};};};