summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/RtecDefaultEventData.idl
blob: 5b80fc0d25d925d7fedc88e2bacd93c1179ba316 (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
//
// $Id$
//

#ifndef TAO_RTEC_DEFAULTEVENTPAYLOAD_IDL
#define TAO_RTEC_DEFAULTEVENTPAYLOAD_IDL

#pragma prefix ""

typedef sequence<octet> EventPayload;
struct RtecEventData
{
#ifndef TAO_LACKS_EVENT_CHANNEL_OCTET_SEQUENCE
  long pad1;
  // This two objects ensure that the encapsulated stream below is
  // properly aligned; this makes the decoding of the payload more
  // efficient because we can use the usual demarshalling code
  // (without making extra copies).
  // This is how this works:
  // - The last field in the header is an 8-byte unsigned long, hence
  //   the header finishes on an 8 byte boundary.
  // - The pad1 long has 4 bytes.
  // - The length in the octet sequence adds another 4 bytes.
  // - Thus the data in the octet sequence starts on an 8 bytes
  //    boundary too.

  EventPayload payload;
#endif /* TAO_LACKS_EVENT_CHANNEL_OCTET_SEQUENCE */

#ifndef TAO_LACKS_EVENT_CHANNEL_ANY
  any any_value;
#endif /* TAO_LACKS_EVENT_CHANNEL_ANY */
};

#pragma prefix ""

#endif /* TAO_RTEC_DEFAULTEVENTPAYLOAD_IDL */