diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-02-09 21:16:13 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-02-09 21:16:13 +0000 |
commit | e941cef7a751a97cc16564eb13741b86a2abd661 (patch) | |
tree | b38b5a828c9a5b1fc00aa855361d6dece26b6000 /TAO/orbsvcs/orbsvcs/RtecEventComm.idl | |
parent | 3d496410aa90721ca568447feb229aff57d06863 (diff) | |
download | ATCD-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.idl | 56 |
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(); }; |