blob: ab51ef3a3bbd6888b5a53d3a62ac9d80fbe280a8 (
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
|
/**
* @file RtecDefaultEventData.idl
*
* @brief Define the RtecBase module
*
* $Id$
*
* TAO's Real-time Event Service is described in:
*
* http://doc.ece.uci.edu/~coryan/EC/
*
* @author Carlos O'Ryan <coryan@uci.edu>
*/
#ifndef TAO_RTEC_DEFAULTEVENTDATA_IDL
#define TAO_RTEC_DEFAULTEVENTDATA_IDL
#include <OctetSeq.pidl>
#pragma prefix ""
/// Define one of the common event payloads
typedef CORBA::OctetSeq EventPayload;
/**
* @brief User defined Event Data
*
*
* This structure defines the default payload in TAO's Real-time Event
* Service.
*
* 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 octets.
*
* The Event Service is completely transparent as to the contents of
* this structure.
*/
struct RtecEventData
{
#ifndef TAO_LACKS_EVENT_CHANNEL_OCTET_SEQUENCE
/// Add padding to align the octet sequence contents
/**
* This fields ensures that the contents of the octet sequence
* following are always aligned to an 8-byte boundary.
* Such alignment allows application developers to implement custom
* demarshaling from the octet sequence without requiring any data
* 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.
*/
long pad1;
/// Octet sequence payload.
/**
* This is the payload used more often by high-performance
* applications.
*/
EventPayload payload;
#endif /* TAO_LACKS_EVENT_CHANNEL_OCTET_SEQUENCE */
#ifndef TAO_LACKS_EVENT_CHANNEL_ANY
/// Use a CORBA any type as payload.
any any_value;
#endif /* TAO_LACKS_EVENT_CHANNEL_ANY */
};
#pragma prefix ""
#endif /* TAO_RTEC_DEFAULTEVENTDATA_IDL */
|