monitor.idl

Go to the documentation of this file.
00001 
00002 #include "dds/DdsDcpsInfrastructure.idl"
00003 #include "dds/DdsDcpsGuid.idl"
00004 #include <tao/ULongSeq.pidl>
00005 
00006 module OpenDDS {
00007 
00008   module DCPS {
00009 
00010     const long MONITOR_DOMAIN_ID = -999;
00011     const long MONITOR_TRANSPORT_ID = 999;
00012     const string SERVICE_PARTICIPANT_MONITOR_TOPIC = "Service Participant Monitor";
00013     const string DOMAIN_PARTICIPANT_MONITOR_TOPIC = "Domain Participant Monitor";
00014     const string TOPIC_MONITOR_TOPIC = "Topic Monitor";
00015     const string PUBLISHER_MONITOR_TOPIC = "Publisher Monitor";
00016     const string SUBSCRIBER_MONITOR_TOPIC = "Subscriber Monitor";
00017     const string DATA_WRITER_MONITOR_TOPIC = "Data Writer Monitor";
00018     const string DATA_WRITER_PERIODIC_MONITOR_TOPIC = "Data Writer Periodic Monitor";
00019     const string DATA_READER_MONITOR_TOPIC = "Data Reader Monitor";
00020     const string DATA_READER_PERIODIC_MONITOR_TOPIC = "Data Reader Periodic Monitor";
00021     const string TRANSPORT_MONITOR_TOPIC = "Transport Monitor";
00022 
00023     struct Statistics {
00024       unsigned long           n;
00025       double                  maximum;
00026       double                  minimum;
00027       double                  mean;
00028       double                  variance;
00029     };
00030 
00031     enum ValueEnumType { INTEGER_TYPE, DOUBLE_TYPE, STRING_TYPE,
00032                          STATISTICS_TYPE, STRING_LIST_TYPE };
00033     union ValueUnion switch (ValueEnumType) {
00034       case INTEGER_TYPE:     long       integer_value;
00035       case DOUBLE_TYPE:      double     double_value;
00036       case STRING_TYPE:      string     string_value;
00037       case STATISTICS_TYPE:  Statistics stat_value;
00038       case STRING_LIST_TYPE: DDS::StringSeq  string_seq_value;
00039     };
00040     struct NameValuePair {
00041       string     name;
00042       ValueUnion value;
00043     };
00044     typedef sequence<NameValuePair> NVPSeq;
00045 
00046 
00047 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::ServiceParticipantReport"
00048 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::ServiceParticipantReport host"
00049 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::ServiceParticipantReport pid"
00050 
00051     struct ServiceParticipantReport {
00052       string    host;
00053       long      pid;
00054       GUIDSeq   domain_participants;
00055       CORBA::ULongSeq  transports;
00056       NVPSeq    values;
00057     };
00058 
00059 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::DomainParticipantReport"
00060 // We just want to use the dp_id field as the key, but using structs
00061 // as keys is not currently supported.
00062 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id"
00063 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[11]"
00064 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[10]"
00065 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 9]"
00066 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 8]"
00067 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 7]"
00068 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 6]"
00069 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 5]"
00070 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 4]"
00071 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 3]"
00072 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 2]"
00073 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 1]"
00074 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 0]"
00075 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.entityId.entityKey[2]"
00076 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.entityId.entityKey[1]"
00077 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.entityId.entityKey[0]"
00078 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.entityId.entityKind"
00079 
00080     struct DomainParticipantReport {
00081       string           host;
00082       long             pid;
00083       GUID_t           dp_id;
00084       DDS::DomainId_t  domain_id;
00085       GUIDSeq          topics;
00086       NVPSeq           values;
00087     };
00088 
00089 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::TopicReport"
00090 // We just want to use the topic_id field as the key, but using structs
00091 // as keys is not currently supported.
00092 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id"
00093 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[11]"
00094 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[10]"
00095 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 9]"
00096 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 8]"
00097 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 7]"
00098 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 6]"
00099 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 5]"
00100 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 4]"
00101 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 3]"
00102 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 2]"
00103 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 1]"
00104 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 0]"
00105 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.entityId.entityKey[2]"
00106 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.entityId.entityKey[1]"
00107 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.entityId.entityKey[0]"
00108 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.entityId.entityKind"
00109 
00110     struct TopicReport {
00111       GUID_t  dp_id;
00112       GUID_t  topic_id;
00113       string  topic_name;
00114       string  type_name;
00115       NVPSeq  values;
00116     };
00117 
00118 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::PublisherReport"
00119 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport handle"
00120 // We just want to use the dp_id field as the key, but using structs
00121 // as keys is not currently supported.
00122 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport pub_id"
00123 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[11]"
00124 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[10]"
00125 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 9]"
00126 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 8]"
00127 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 7]"
00128 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 6]"
00129 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 5]"
00130 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 4]"
00131 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 3]"
00132 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 2]"
00133 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 1]"
00134 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 0]"
00135 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.entityId.entityKey[2]"
00136 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.entityId.entityKey[1]"
00137 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.entityId.entityKey[0]"
00138 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.entityId.entityKind"
00139 
00140     struct PublisherReport {
00141       DDS::InstanceHandle_t handle;
00142       GUID_t                dp_id;
00143       unsigned long         transport_id;
00144       GUIDSeq               writers;
00145       NVPSeq                values;
00146     };
00147 
00148 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::SubscriberReport"
00149 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport handle"
00150 // We just want to use the dp_id field as the key, but using structs
00151 // as keys is not currently supported.
00152 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id"
00153 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[11]"
00154 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[10]"
00155 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 9]"
00156 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 8]"
00157 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 7]"
00158 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 6]"
00159 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 5]"
00160 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 4]"
00161 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 3]"
00162 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 2]"
00163 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 1]"
00164 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 0]"
00165 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.entityId.entityKey[2]"
00166 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.entityId.entityKey[1]"
00167 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.entityId.entityKey[0]"
00168 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.entityId.entityKind"
00169 
00170     struct SubscriberReport {
00171       DDS::InstanceHandle_t handle;
00172       GUID_t                dp_id;
00173       unsigned long         transport_id;
00174       GUIDSeq               readers;
00175       NVPSeq                values;
00176     };
00177 
00178 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::DataWriterReport"
00179 // We just want to use the dw_id field as the key, but using structs
00180 // as keys is not currently supported.
00181 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id"
00182 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[11]"
00183 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[10]"
00184 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 9]"
00185 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 8]"
00186 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 7]"
00187 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 6]"
00188 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 5]"
00189 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 4]"
00190 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 3]"
00191 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 2]"
00192 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 1]"
00193 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 0]"
00194 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.entityId.entityKey[2]"
00195 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.entityId.entityKey[1]"
00196 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.entityId.entityKey[0]"
00197 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.entityId.entityKind"
00198 
00199     struct DataWriterAssociation {
00200       GUID_t        dr_id;
00201     };
00202     typedef sequence<DataWriterAssociation> DWAssociations;
00203     struct DataWriterReport {
00204       GUID_t                 dp_id;
00205       DDS::InstanceHandle_t  pub_handle;
00206       GUID_t                 dw_id;
00207       GUID_t                 topic_id;
00208       DDS::InstanceHandleSeq instances;
00209       DWAssociations         associations;
00210       NVPSeq                 values;
00211     };
00212 
00213 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::DataWriterPeriodicReport"
00214 // We just want to use the dw_id field as the key, but using structs
00215 // as keys is not currently supported.
00216 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id"
00217 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[11]"
00218 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[10]"
00219 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 9]"
00220 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 8]"
00221 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 7]"
00222 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 6]"
00223 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 5]"
00224 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 4]"
00225 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 3]"
00226 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 2]"
00227 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 1]"
00228 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 0]"
00229 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.entityId.entityKey[2]"
00230 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.entityId.entityKey[1]"
00231 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.entityId.entityKey[0]"
00232 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.entityId.entityKind"
00233 
00234     struct DataWriterAssociationPeriodic {
00235       GUID_t        dr_id;
00236       unsigned long sequence_number;
00237     };
00238     typedef sequence<DataWriterAssociationPeriodic> DWAssociationsPeriodic;
00239     struct DataWriterPeriodicReport {
00240       GUID_t        dw_id;
00241       unsigned long data_dropped_count;
00242       unsigned long data_delivered_count;
00243       unsigned long control_dropped_count;
00244       unsigned long control_delivered_count;
00245       DWAssociationsPeriodic associations;
00246       NVPSeq        values;
00247     };
00248 
00249 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::DataReaderReport"
00250 // We just want to use the dr_id field as the key, but using structs
00251 // as keys is not currently supported.
00252 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id"
00253 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[11]"
00254 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[10]"
00255 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 9]"
00256 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 8]"
00257 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 7]"
00258 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 6]"
00259 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 5]"
00260 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 4]"
00261 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 3]"
00262 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 2]"
00263 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 1]"
00264 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 0]"
00265 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.entityId.entityKey[2]"
00266 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.entityId.entityKey[1]"
00267 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.entityId.entityKey[0]"
00268 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.entityId.entityKind"
00269 
00270     struct DataReaderAssociation {
00271       GUID_t        dw_id;
00272       short         state;
00273     };
00274     typedef sequence<DataReaderAssociation> DRAssociations;
00275     struct DataReaderReport {
00276       GUID_t                 dp_id;
00277       DDS::InstanceHandle_t  sub_handle;
00278       GUID_t                 dr_id;
00279       GUID_t                 topic_id;
00280       DDS::InstanceHandleSeq instances;
00281       DRAssociations         associations;
00282       NVPSeq                 values;
00283     };
00284 
00285 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::DataReaderPeriodicReport"
00286 // We just want to use the dr_id field as the key, but using structs
00287 // as keys is not currently supported.
00288 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id"
00289 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[11]"
00290 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[10]"
00291 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 9]"
00292 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 8]"
00293 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 7]"
00294 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 6]"
00295 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 5]"
00296 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 4]"
00297 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 3]"
00298 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 2]"
00299 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 1]"
00300 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 0]"
00301 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.entityId.entityKey[2]"
00302 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.entityId.entityKey[1]"
00303 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.entityId.entityKey[0]"
00304 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.entityId.entityKind"
00305 
00306     struct DataReaderAssociationPeriodic {
00307       GUID_t        dw_id;
00308       unsigned long samples_available;
00309       // Stats      latency_stats;
00310     };
00311     typedef sequence<DataReaderAssociationPeriodic> DRAssociationsPeriodic;
00312     struct DataReaderPeriodicReport {
00313       GUID_t        dr_id;
00314       DRAssociationsPeriodic associations;
00315       NVPSeq        values;
00316     };
00317 
00318 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::TransportReport"
00319 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TransportReport host"
00320 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TransportReport pid"
00321 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TransportReport transport_id"
00322 
00323     struct TransportReport {
00324       string        host;
00325       long          pid;
00326       unsigned long transport_id;
00327       string        transport_type;
00328       NVPSeq        values;
00329     };
00330 
00331     enum ReportType {
00332       SERVICE_PARTICIPANT_REPORT_TYPE,
00333       DOMAIN_PARTICIPANT_REPORT_TYPE,
00334       TOPIC_REPORT_TYPE,
00335       PUBLISHER_REPORT_TYPE,
00336       SUBSCRIBER_REPORT_TYPE,
00337       DATA_WRITER_REPORT_TYPE,
00338       DATA_WRITER_PERIODIC_REPORT_TYPE,
00339       DATA_READER_REPORT_TYPE,
00340       DATA_READER_PERIODIC_REPORT_TYPE,
00341       TRANSPORT_REPORT_TYPE
00342     };
00343     union GenericReport switch (ReportType) {
00344       case SERVICE_PARTICIPANT_REPORT_TYPE:
00345         ServiceParticipantReport sp_report;
00346       case DOMAIN_PARTICIPANT_REPORT_TYPE:
00347         DomainParticipantReport dp_report;
00348       case TOPIC_REPORT_TYPE:
00349         TopicReport topic_report;
00350       case PUBLISHER_REPORT_TYPE:
00351         PublisherReport publisher_report;
00352       case SUBSCRIBER_REPORT_TYPE:
00353         SubscriberReport subscriber_report;
00354       case DATA_WRITER_REPORT_TYPE:
00355         DataWriterReport dw_report;
00356       case DATA_WRITER_PERIODIC_REPORT_TYPE:
00357         DataWriterPeriodicReport dw_per_report;
00358       case DATA_READER_REPORT_TYPE:
00359         DataReaderReport dr_report;
00360       case DATA_READER_PERIODIC_REPORT_TYPE:
00361         DataReaderPeriodicReport dr_per_report;
00362       case TRANSPORT_REPORT_TYPE:
00363         TransportReport transport_report;
00364     };
00365 
00366     interface ProcessMonitor {
00367       // Pass a name that acts as a global identifier for a given
00368       // entity or individual statistic.  Need to define the actual
00369       // format for this name, but concatenating the entity identifiers
00370       // together with "/" separators should work.  Passing an empty
00371       // string would retrieve the ServiceParticipant information
00372       // (which would list the Domain Participants).
00373       GenericReport retrieve_report(in string name);
00374 
00375       // Allow global enabling disabling of report collection for
00376       // this process.
00377       void enable_report_collection();
00378       void disable_report_collection();
00379 
00380       // Allow global enabling/disabling of report publication
00381       // for this process.
00382       void enable_report_publishing();
00383       void diable_report_publishing();
00384 
00385       // Set the period between publishing samples
00386       void set_publishing_period(in DDS::Duration_t period);
00387       DDS::Duration_t get_publishing_period();
00388     };
00389 
00390   };
00391 
00392 };

Generated on Fri Feb 12 20:05:24 2016 for OpenDDS by  doxygen 1.4.7