OpenDDS  Snapshot(2023/04/28-20:55)
monitor.idl
Go to the documentation of this file.
1 #ifndef OPENDDS_MONITOR_MONITOR_IDL
2 #define OPENDDS_MONITOR_MONITOR_IDL
3 
5 #include <dds/DdsDcpsGuid.idl>
6 
7 #include <tao/ULongSeq.pidl>
8 
9 module OpenDDS {
10 
11  module DCPS {
12 
13  const long MONITOR_DOMAIN_ID = -999;
14  const long MONITOR_TRANSPORT_ID = 999;
15  const string SERVICE_PARTICIPANT_MONITOR_TOPIC = "Service Participant Monitor";
16  const string DOMAIN_PARTICIPANT_MONITOR_TOPIC = "Domain Participant Monitor";
17  const string TOPIC_MONITOR_TOPIC = "Topic Monitor";
18  const string PUBLISHER_MONITOR_TOPIC = "Publisher Monitor";
19  const string SUBSCRIBER_MONITOR_TOPIC = "Subscriber Monitor";
20  const string DATA_WRITER_MONITOR_TOPIC = "Data Writer Monitor";
21  const string DATA_WRITER_PERIODIC_MONITOR_TOPIC = "Data Writer Periodic Monitor";
22  const string DATA_READER_MONITOR_TOPIC = "Data Reader Monitor";
23  const string DATA_READER_PERIODIC_MONITOR_TOPIC = "Data Reader Periodic Monitor";
24  const string TRANSPORT_MONITOR_TOPIC = "Transport Monitor";
25 
26  struct Statistics {
27  unsigned long n;
28  double maximum;
29  double minimum;
30  double mean;
31  double variance;
32  };
33 
36  union ValueUnion switch (ValueEnumType) {
38  case DOUBLE_TYPE: double double_value;
39  case STRING_TYPE: string string_value;
42  };
43  struct NameValuePair {
44  string name;
46  };
47  typedef sequence<NameValuePair> NVPSeq;
48 
49 
50  @topic
52  /// Host name
53  @key string host;
54  /// Process ID
55  @key long pid;
58  NVPSeq values;
59  };
60 
61  @topic
63  /// Host name
64  string host;
65  /// Process ID
66  long pid;
67  /// GUID of the Domain Participant
71  NVPSeq values;
72  };
73 
74  @topic
75  struct TopicReport {
76  /// GUID of the Domain Participant this Topic belongs to
78  /// GUID for the Topic
80  string topic_name;
81  string type_name;
82  NVPSeq values;
83  };
84 
85  @topic
86  struct PublisherReport {
87  /// Instance handle of this Publisher. Unique within the DP.
89  /// GUID of the Domain Participant this Publisher belongs to
91  unsigned long transport_id;
93  NVPSeq values;
94  };
95 
96  @topic
98  /// Instance handle of this Subscriber. Unique within the DP.
100  /// GUID of the Domain Participant this Subscriber belongs to
102  unsigned long transport_id;
104  NVPSeq values;
105  };
106 
109  };
110  typedef sequence<DataWriterAssociation> DWAssociations;
111 
112  @topic
114  /// GUID of the Domain Participant this Data Writer belongs to
116  /// Instance handle of this Data Writer's Publisher
118  /// GUID for the Data Writer
120  /// GUID for the Topic this Data Writer is using
122  /// Sequence of instances that this Data Writer has registered
124  /// Sequence of Data Reader GUIDs that this Data Writer is associated with
125  DWAssociations associations;
126  NVPSeq values;
127  };
128 
131  unsigned long sequence_number;
132  };
133  typedef sequence<DataWriterAssociationPeriodic> DWAssociationsPeriodic;
134 
135  @topic
138  unsigned long data_dropped_count;
139  unsigned long data_delivered_count;
140  unsigned long control_dropped_count;
141  unsigned long control_delivered_count;
142  DWAssociationsPeriodic associations;
143  NVPSeq values;
144  };
145 
148  short state;
149  };
150  typedef sequence<DataReaderAssociation> DRAssociations;
151 
152  @topic
154  /// GUID of the Domain Participant this Data Reader belongs to
156  /// Instance handle of this Data Reader's Subscriber
158  /// GUID for the Data Reader
160  /// GUID for the Topic this Data Reader is using
162  /// Sequence of instances that this Data Reader has received
164  /// Sequence of Data Writer GUIDs that this Data Reader is associated with
165  DRAssociations associations;
166  NVPSeq values;
167  };
168 
171  unsigned long samples_available;
172  // Stats latency_stats;
173  };
174  typedef sequence<DataReaderAssociationPeriodic> DRAssociationsPeriodic;
175 
176  @topic
179  DRAssociationsPeriodic associations;
180  NVPSeq values;
181  };
182 
183  @topic
185  @key string host;
186  @key long pid;
187  @key unsigned long transport_id;
189  NVPSeq values;
190  };
191 
192  enum ReportType {
203  };
204  union GenericReport switch (ReportType) {
209  case TOPIC_REPORT_TYPE:
225  };
226 
227  interface ProcessMonitor {
228  // Pass a name that acts as a global identifier for a given
229  // entity or individual statistic. Need to define the actual
230  // format for this name, but concatenating the entity identifiers
231  // together with "/" separators should work. Passing an empty
232  // string would retrieve the ServiceParticipant information
233  // (which would list the Domain Participants).
234  GenericReport retrieve_report(in string name);
235 
236  // Allow global enabling disabling of report collection for
237  // this process.
238  void enable_report_collection();
239  void disable_report_collection();
240 
241  // Allow global enabling/disabling of report publication
242  // for this process.
243  void enable_report_publishing();
244  void diable_report_publishing();
245 
246  // Set the period between publishing samples
247  void set_publishing_period(in DDS::Duration_t period);
248  DDS::Duration_t get_publishing_period();
249  };
250 
251  };
252 
253 };
254 
255 #endif // OPENDDS_MONITOR_MONITOR_IDL
sequence< InstanceHandle_t > InstanceHandleSeq
Definition: DdsDcpsCore.idl:53
const string SERVICE_PARTICIPANT_MONITOR_TOPIC
Definition: monitor.idl:15
const string PUBLISHER_MONITOR_TOPIC
Definition: monitor.idl:18
GUID_t topic_id
GUID for the Topic this Data Reader is using.
Definition: monitor.idl:161
key GUID_t topic_id
GUID for the Topic.
Definition: monitor.idl:79
DDS::InstanceHandleSeq instances
Sequence of instances that this Data Reader has received.
Definition: monitor.idl:163
const long MONITOR_TRANSPORT_ID
Definition: monitor.idl:14
GUID_t dp_id
GUID of the Domain Participant this Topic belongs to.
Definition: monitor.idl:77
key GUID_t dp_id
GUID of the Domain Participant this Subscriber belongs to.
Definition: monitor.idl:101
sequence< octet > key
sequence< DataReaderAssociationPeriodic > DRAssociationsPeriodic
Definition: monitor.idl:174
const string DATA_READER_PERIODIC_MONITOR_TOPIC
Definition: monitor.idl:23
SubscriberReport subscriber_report
Definition: monitor.idl:214
const string DATA_WRITER_PERIODIC_MONITOR_TOPIC
Definition: monitor.idl:21
sequence< DataWriterAssociation > DWAssociations
Definition: monitor.idl:110
key unsigned long transport_id
Definition: monitor.idl:187
sequence< NameValuePair > NVPSeq
Definition: monitor.idl:47
DomainParticipantReport dp_report
Definition: monitor.idl:208
key GUID_t dp_id
GUID of the Domain Participant this Publisher belongs to.
Definition: monitor.idl:90
key DDS::InstanceHandle_t handle
Instance handle of this Publisher. Unique within the DP.
Definition: monitor.idl:88
GUID_t topic_id
GUID for the Topic this Data Writer is using.
Definition: monitor.idl:121
DOMAINID_TYPE_NATIVE DomainId_t
const string DATA_READER_MONITOR_TOPIC
Definition: monitor.idl:22
ServiceParticipantReport sp_report
Definition: monitor.idl:206
DataWriterPeriodicReport dw_per_report
Definition: monitor.idl:218
GUID_t dp_id
GUID of the Domain Participant this Data Writer belongs to.
Definition: monitor.idl:115
const string SUBSCRIBER_MONITOR_TOPIC
Definition: monitor.idl:19
sequence< DataReaderAssociation > DRAssociations
Definition: monitor.idl:150
sequence< unsigned long > ULongSeq
const long MONITOR_DOMAIN_ID
Definition: monitor.idl:13
DataReaderPeriodicReport dr_per_report
Definition: monitor.idl:222
key GUID_t dr_id
GUID for the Data Reader.
Definition: monitor.idl:159
DataReaderReport dr_report
Definition: monitor.idl:220
sequence< DataWriterAssociationPeriodic > DWAssociationsPeriodic
Definition: monitor.idl:133
TransportReport transport_report
Definition: monitor.idl:224
DWAssociations associations
Sequence of Data Reader GUIDs that this Data Writer is associated with.
Definition: monitor.idl:125
key DDS::InstanceHandle_t handle
Instance handle of this Subscriber. Unique within the DP.
Definition: monitor.idl:99
DRAssociations associations
Sequence of Data Writer GUIDs that this Data Reader is associated with.
Definition: monitor.idl:165
key GUID_t dp_id
GUID of the Domain Participant.
Definition: monitor.idl:68
const char *const name
Definition: debug.cpp:60
HANDLE_TYPE_NATIVE InstanceHandle_t
Definition: DdsDcpsCore.idl:51
GUID_t dp_id
GUID of the Domain Participant this Data Reader belongs to.
Definition: monitor.idl:155
const string TRANSPORT_MONITOR_TOPIC
Definition: monitor.idl:24
sequence< GUID_t > GUIDSeq
Definition: DdsDcpsGuid.idl:62
const string DATA_WRITER_MONITOR_TOPIC
Definition: monitor.idl:20
PublisherReport publisher_report
Definition: monitor.idl:212
const string TOPIC_MONITOR_TOPIC
Definition: monitor.idl:17
const string DOMAIN_PARTICIPANT_MONITOR_TOPIC
Definition: monitor.idl:16
DDS::StringSeq string_seq_value
Definition: monitor.idl:41
DRAssociationsPeriodic associations
Definition: monitor.idl:179
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28
key GUID_t dw_id
GUID for the Data Writer.
Definition: monitor.idl:119
DDS::InstanceHandleSeq instances
Sequence of instances that this Data Writer has registered.
Definition: monitor.idl:123
DDS::InstanceHandle_t sub_handle
Instance handle of this Data Reader&#39;s Subscriber.
Definition: monitor.idl:157
DDS::InstanceHandle_t pub_handle
Instance handle of this Data Writer&#39;s Publisher.
Definition: monitor.idl:117
sequence< string > StringSeq
Definition: DdsDcpsCore.idl:50
DataWriterReport dw_report
Definition: monitor.idl:216
DWAssociationsPeriodic associations
Definition: monitor.idl:142