blob: 30c9d5249a031b8eaa0beaf5c5625b88d85f12cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
// $Id$
// ===================================================================
//
// = FILENAME
// remora.idl
//
// = AUTHOR
// Seth Widoff
//
// ===================================================================
// The IDL interface for the published Remora interfaces.
module remora
{
struct Statistic
{
string label_;
long value_;
long max_;
};
struct Control
{
string label_;
long value_;
long min_;
long max_;
};
typedef long Token;
typedef sequence<Statistic> Statistics_List;
typedef sequence<Control> Controls_List;
exception Invalid_Statistic {};
exception Invalid_Control {};
interface Statistics_Update
{
void acceptNewStatistic(in Statistic stat) raises (Invalid_Statistic);
void updateStatistic(in Statistic stat) raises (Invalid_Statistic);
void removeStatistic(in string label) raises (Invalid_Statistic);
};
interface Controls_Update
{
void acceptNewControl(in Control control) raises (Invalid_Control);
void getControlState(inout Control control) raises (Invalid_Control);
void removeControl(in string label) raises (Invalid_Control);
};
// Located in an applet, the client receives and displays
// statistics from the server.
interface Remora_Statistics_Client : Statistics_Update
{
oneway void acceptManyStatistics(in Statistics_List stats, in long length);
oneway void updateManyStatistics(in Statistics_List stats, in long length);
// Update all statistics registered with the client
oneway void shutdownStatistics();
// Suggest that the client shut itself down
};
interface Remora_Controls_Client : Controls_Update
{
oneway void acceptManyControls(in Controls_List controls, in long length);
// Deliver many new controls to the client.
oneway void shutdownControls();
};
// Located on the server side, the Agent delivers statistics to
// registered clients.
interface Remora_Statistics_Agent : Statistics_Update
{
oneway void setFrequency(in long id, in long update_time);
// Set the frequency at which the Agent will transmit
// the statistics to the clients.
long registerClient(in Remora_Statistics_Client client, in long update_time);
// Register a client for periodic updates.
oneway void terminateRegistration(in long client_id);
// Unregister the client from the server.
};
interface Remora_Controls_Agent : Controls_Update
{
Token grabControlLock(in Remora_Controls_Client client);
void releaseControlLock(in Token token);
};
};
|