forked from OpenDDS/OpenDDS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOpenddsDcpsExt.idl
137 lines (115 loc) · 3.75 KB
/
OpenddsDcpsExt.idl
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*
*
*
* Distributed under the OpenDDS License.
* See: http://www.opendds.org/license.html
*/
#ifndef OPENDDS_DCPS_EXT_IDL
#define OPENDDS_DCPS_EXT_IDL
#include <dds/DdsDcpsCore.idl>
#include <dds/DdsDcpsInfoUtils.idl>
#include <dds/DdsDcpsGuid.idl>
#if defined __OPENDDS_IDL && !defined DDS_HAS_MINIMUM_BIT
# define BUILT_IN_TOPIC_TYPE @topic
# define BUILT_IN_TOPIC_KEY @key
#else
# define BUILT_IN_TOPIC_TYPE
# define BUILT_IN_TOPIC_KEY
#endif
module OpenDDS
{
module DCPS
{
// Make the IDL compiler produce include of zero-copy read info
// sequence template.
#pragma DCPS_SUPPORT_ZERO_COPY_READ
// OpenDDS extension built-in topic for participant
// network location/connection details.
typedef unsigned long ParticipantLocation;
const ParticipantLocation LOCATION_LOCAL = 0x0001 << 0;
const ParticipantLocation LOCATION_ICE = 0x0001 << 1;
const ParticipantLocation LOCATION_RELAY = 0x0001 << 2;
const ParticipantLocation LOCATION_LOCAL6 = 0x0001 << 3;
const ParticipantLocation LOCATION_ICE6 = 0x0001 << 4;
const ParticipantLocation LOCATION_RELAY6 = 0x0001 << 5;
BUILT_IN_TOPIC_TYPE
struct ParticipantLocationBuiltinTopicData {
BUILT_IN_TOPIC_KEY DDS::OctetArray16 guid;
ParticipantLocation location;
ParticipantLocation change_mask;
string local_addr;
DDS::Time_t local_timestamp;
string ice_addr;
DDS::Time_t ice_timestamp;
string relay_addr;
DDS::Time_t relay_timestamp;
string local6_addr;
DDS::Time_t local6_timestamp;
string ice6_addr;
DDS::Time_t ice6_timestamp;
string relay6_addr;
DDS::Time_t relay6_timestamp;
DDS::Duration_t lease_duration;
unsigned long user_tag;
};
const string RTPS_RELAY_STUN_PROTOCOL = "RtpsRelay:STUN";
BUILT_IN_TOPIC_TYPE
struct ConnectionRecord {
BUILT_IN_TOPIC_KEY DDS::OctetArray16 guid;
BUILT_IN_TOPIC_KEY string address;
BUILT_IN_TOPIC_KEY string protocol;
DDS::Duration_t latency;
};
// OpenDDS extension built-in topic for thread
// status monitoring.
BUILT_IN_TOPIC_TYPE
struct InternalThreadBuiltinTopicData {
BUILT_IN_TOPIC_KEY string thread_id;
double utilization;
MonotonicTime_t monotonic_timestamp;
};
const long LOCATOR_KIND_INVALID = -1;
const long LOCATOR_KIND_RESERVED = 0;
const long LOCATOR_KIND_UDPv4 = 1;
const long LOCATOR_KIND_UDPv6 = 2;
const unsigned long LOCATOR_PORT_INVALID = 0;
/* Type used to represent the addressing information needed to send a
message to an RTPS Endpoint */
struct Locator_t {
long kind;
unsigned long _port;
DDS::OctetArray16 address;
};
typedef sequence<Locator_t> LocatorSeq;
typedef long MessageCountKind;
const MessageCountKind MCK_RTPS = 0;
const MessageCountKind MCK_STUN = 1;
struct MessageCount {
@key Locator_t locator;
@key MessageCountKind kind;
boolean relay;
unsigned long send_count;
unsigned long send_bytes;
unsigned long send_fail_count;
unsigned long send_fail_bytes;
unsigned long recv_count;
unsigned long recv_bytes;
};
struct GuidCount {
@key OpenDDS::DCPS::GUID_t guid;
unsigned long count;
};
typedef sequence<MessageCount> MessageCountSequence;
typedef sequence<GuidCount> GuidCountSequence;
struct TransportStatistics {
@key string transport;
MessageCountSequence message_count;
GuidCountSequence writer_resend_count;
GuidCountSequence reader_nack_count;
};
typedef sequence<TransportStatistics> TransportStatisticsSequence;
}; // module DDS
}; // module OpenDDS
#undef BUILT_IN_TOPIC_TYPE
#undef BUILT_IN_TOPIC_KEY
#endif /* OPENDDS_DCPS_EXT_IDL */