summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/RtecEventComm.idl
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-02-09 21:16:13 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-02-09 21:16:13 +0000
commite941cef7a751a97cc16564eb13741b86a2abd661 (patch)
treeb38b5a828c9a5b1fc00aa855361d6dece26b6000 /TAO/orbsvcs/orbsvcs/RtecEventComm.idl
parent3d496410aa90721ca568447feb229aff57d06863 (diff)
downloadATCD-e941cef7a751a97cc16564eb13741b86a2abd661.tar.gz
ChangeLogTag:Mon Feb 9 12:59:29 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/RtecEventComm.idl')
-rw-r--r--TAO/orbsvcs/orbsvcs/RtecEventComm.idl56
1 files changed, 47 insertions, 9 deletions
diff --git a/TAO/orbsvcs/orbsvcs/RtecEventComm.idl b/TAO/orbsvcs/orbsvcs/RtecEventComm.idl
index 5171aaa4438..4b060aad8c2 100644
--- a/TAO/orbsvcs/orbsvcs/RtecEventComm.idl
+++ b/TAO/orbsvcs/orbsvcs/RtecEventComm.idl
@@ -3,10 +3,21 @@
//
module RtecEventComm {
- exception Disconnected {};
+
+ // = TITLE
+ // User defined Event Data.
+ //
+ // = DESCRIPTION
+ // The Event payload is defined by this type.
+ // Users wanting maximum flexibility can use an Any,
+ // users that only have one type of event may use structures,
+ // other users may preffer union, trying to strike a balance
+ // between performance and flexibility.
+ // Users willing to implement their own marshalling may use a
+ // sequence of octet.
#if 0
- union EventData switch(short) {
+ union EventData switch(long) {
case 1: double dval;
case 2: string sval;
case 3: sequence<octet> bval;
@@ -19,26 +30,53 @@ module RtecEventComm {
};
#endif
+ // @@ TODO: Use CosTimeService?
+ // The current definition (double) is a TOTAL HACK, we store a
+ // <long long> here just because it fits; unfortunately <long long>
+ // is not fully supported in the IDL compiler (yet).
+ typedef double Time;
+
typedef long EventSourceID;
typedef long EventType;
- // @@ TODO: Use CosTimeService?
- // The current definition (double) is a TOTAL HACK, we store a long
- // long here just because it fits....
- typedef double Time;
+ struct Event
+ {
+ // = TITLE
+ // The Event structure.
+ //
+ // = DESCRIPTION
+ // Events are represented by this structure, it is simply a
+ // header,data pair.
+ //
- struct Event {
- EventSourceID source_;
EventType type_;
+ // The event type.
+ // This may be different from the discriminator in the EventData
+ // union above, the motivation is to allow filtering by data
+ // contents: different event types are assigned to different data
+ // contents though they use the same discriminator.
+
+ EventSourceID source_;
+ // Some way to identify the supplier.
+
+ long ttl_;
+ // The "Time To Live" count, each time an EC process the event it
+ // decreases the TTL field, when it gets to zero the message is no
+ // longer forwarded.
+
Time creation_time_;
Time ec_recv_time_;
Time ec_send_time_;
+ // Some timestamps, they actually belong in the payload, for some
+ // kind of measument event.
+
EventData data_;
+ // The event payload.
};
typedef sequence<Event> EventSet;
interface PushConsumer {
- oneway void push (in EventSet data); // raises(Disconnected);
+ oneway void push (in EventSet data);
oneway void disconnect_push_consumer();
};