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       /// Host name
00053       string    host;
00054       /// Process ID
00055       long      pid;
00056       GUIDSeq   domain_participants;
00057       CORBA::ULongSeq  transports;
00058       NVPSeq    values;
00059     };
00060 
00061 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::DomainParticipantReport"
00062 // We just want to use the dp_id field as the key, but using structs
00063 // as keys is not currently supported.
00064 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id"
00065 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[11]"
00066 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[10]"
00067 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 9]"
00068 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 8]"
00069 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 7]"
00070 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 6]"
00071 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 5]"
00072 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 4]"
00073 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 3]"
00074 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 2]"
00075 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 1]"
00076 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.guidPrefix[ 0]"
00077 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.entityId.entityKey[2]"
00078 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.entityId.entityKey[1]"
00079 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.entityId.entityKey[0]"
00080 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DomainParticipantReport dp_id.entityId.entityKind"
00081 
00082     struct DomainParticipantReport {
00083       /// Host name
00084       string           host;
00085       /// Process ID
00086       long             pid;
00087       /// GUID of the Domain Participant
00088       GUID_t           dp_id;
00089       DDS::DomainId_t  domain_id;
00090       GUIDSeq          topics;
00091       NVPSeq           values;
00092     };
00093 
00094 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::TopicReport"
00095 // We just want to use the topic_id field as the key, but using structs
00096 // as keys is not currently supported.
00097 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id"
00098 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[11]"
00099 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[10]"
00100 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 9]"
00101 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 8]"
00102 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 7]"
00103 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 6]"
00104 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 5]"
00105 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 4]"
00106 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 3]"
00107 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 2]"
00108 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 1]"
00109 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.guidPrefix[ 0]"
00110 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.entityId.entityKey[2]"
00111 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.entityId.entityKey[1]"
00112 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.entityId.entityKey[0]"
00113 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TopicReport topic_id.entityId.entityKind"
00114 
00115     struct TopicReport {
00116       /// GUID of the Domain Participant this Topic belongs to
00117       GUID_t  dp_id;
00118       /// GUID for the Topic
00119       GUID_t  topic_id;
00120       string  topic_name;
00121       string  type_name;
00122       NVPSeq  values;
00123     };
00124 
00125 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::PublisherReport"
00126 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport handle"
00127 // We just want to use the dp_id field as the key, but using structs
00128 // as keys is not currently supported.
00129 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id"
00130 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[11]"
00131 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[10]"
00132 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 9]"
00133 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 8]"
00134 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 7]"
00135 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 6]"
00136 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 5]"
00137 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 4]"
00138 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 3]"
00139 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 2]"
00140 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 1]"
00141 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.guidPrefix[ 0]"
00142 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.entityId.entityKey[2]"
00143 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.entityId.entityKey[1]"
00144 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.entityId.entityKey[0]"
00145 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::PublisherReport dp_id.entityId.entityKind"
00146 
00147     struct PublisherReport {
00148       /// Instance handle of this Publisher. Unique withing the DP.
00149       DDS::InstanceHandle_t handle;
00150       /// GUID of the Domain Participant this Publisher belongs to
00151       GUID_t                dp_id;
00152       unsigned long         transport_id;
00153       GUIDSeq               writers;
00154       NVPSeq                values;
00155     };
00156 
00157 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::SubscriberReport"
00158 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport handle"
00159 // We just want to use the dp_id field as the key, but using structs
00160 // as keys is not currently supported.
00161 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id"
00162 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[11]"
00163 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[10]"
00164 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 9]"
00165 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 8]"
00166 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 7]"
00167 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 6]"
00168 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 5]"
00169 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 4]"
00170 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 3]"
00171 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 2]"
00172 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 1]"
00173 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.guidPrefix[ 0]"
00174 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.entityId.entityKey[2]"
00175 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.entityId.entityKey[1]"
00176 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.entityId.entityKey[0]"
00177 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::SubscriberReport dp_id.entityId.entityKind"
00178 
00179     struct SubscriberReport {
00180       /// Instance handle of this Subscriber. Unique withing the DP.
00181       DDS::InstanceHandle_t handle;
00182       /// GUID of the Domain Participant this Subscriber belongs to
00183       GUID_t                dp_id;
00184       unsigned long         transport_id;
00185       GUIDSeq               readers;
00186       NVPSeq                values;
00187     };
00188 
00189 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::DataWriterReport"
00190 // We just want to use the dw_id field as the key, but using structs
00191 // as keys is not currently supported.
00192 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id"
00193 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[11]"
00194 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[10]"
00195 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 9]"
00196 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 8]"
00197 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 7]"
00198 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 6]"
00199 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 5]"
00200 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 4]"
00201 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 3]"
00202 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 2]"
00203 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 1]"
00204 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.guidPrefix[ 0]"
00205 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.entityId.entityKey[2]"
00206 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.entityId.entityKey[1]"
00207 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.entityId.entityKey[0]"
00208 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterReport dw_id.entityId.entityKind"
00209 
00210     struct DataWriterAssociation {
00211       GUID_t        dr_id;
00212     };
00213     typedef sequence<DataWriterAssociation> DWAssociations;
00214     struct DataWriterReport {
00215       /// GUID of the Domain Participant this Data Writer belongs to
00216       GUID_t                 dp_id;
00217       /// Instance handle of this Data Writer's Publisher
00218       DDS::InstanceHandle_t  pub_handle;
00219       /// GUID for the Data Writer
00220       GUID_t                 dw_id;
00221       /// GUID for the Topic this Data Writer is using
00222       GUID_t                 topic_id;
00223       /// Sequence of instances that this Data Writer has registered
00224       DDS::InstanceHandleSeq instances;
00225       /// Sequence of Data Reader GUIDs that this Data Writer is associated with
00226       DWAssociations         associations;
00227       NVPSeq                 values;
00228     };
00229 
00230 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::DataWriterPeriodicReport"
00231 // We just want to use the dw_id field as the key, but using structs
00232 // as keys is not currently supported.
00233 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id"
00234 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[11]"
00235 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[10]"
00236 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 9]"
00237 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 8]"
00238 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 7]"
00239 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 6]"
00240 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 5]"
00241 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 4]"
00242 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 3]"
00243 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 2]"
00244 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 1]"
00245 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.guidPrefix[ 0]"
00246 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.entityId.entityKey[2]"
00247 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.entityId.entityKey[1]"
00248 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.entityId.entityKey[0]"
00249 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataWriterPeriodicReport dw_id.entityId.entityKind"
00250 
00251     struct DataWriterAssociationPeriodic {
00252       GUID_t        dr_id;
00253       unsigned long sequence_number;
00254     };
00255     typedef sequence<DataWriterAssociationPeriodic> DWAssociationsPeriodic;
00256     struct DataWriterPeriodicReport {
00257       GUID_t        dw_id;
00258       unsigned long data_dropped_count;
00259       unsigned long data_delivered_count;
00260       unsigned long control_dropped_count;
00261       unsigned long control_delivered_count;
00262       DWAssociationsPeriodic associations;
00263       NVPSeq        values;
00264     };
00265 
00266 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::DataReaderReport"
00267 // We just want to use the dr_id field as the key, but using structs
00268 // as keys is not currently supported.
00269 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id"
00270 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[11]"
00271 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[10]"
00272 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 9]"
00273 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 8]"
00274 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 7]"
00275 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 6]"
00276 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 5]"
00277 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 4]"
00278 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 3]"
00279 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 2]"
00280 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 1]"
00281 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.guidPrefix[ 0]"
00282 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.entityId.entityKey[2]"
00283 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.entityId.entityKey[1]"
00284 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.entityId.entityKey[0]"
00285 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderReport dr_id.entityId.entityKind"
00286 
00287     struct DataReaderAssociation {
00288       GUID_t        dw_id;
00289       short         state;
00290     };
00291     typedef sequence<DataReaderAssociation> DRAssociations;
00292     struct DataReaderReport {
00293       /// GUID of the Domain Participant this Data Reader belongs to
00294       GUID_t                 dp_id;
00295       /// Instance handle of this Data Reader's Subscriber
00296       DDS::InstanceHandle_t  sub_handle;
00297       /// GUID for the Data Reader
00298       GUID_t                 dr_id;
00299       /// GUID for the Topic this Data Reader is using
00300       GUID_t                 topic_id;
00301       /// Sequence of instances that this Data Reader has received
00302       DDS::InstanceHandleSeq instances;
00303       /// Sequence of Data Writer GUIDs that this Data Reader is associated with
00304       DRAssociations         associations;
00305       NVPSeq                 values;
00306     };
00307 
00308 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::DataReaderPeriodicReport"
00309 // We just want to use the dr_id field as the key, but using structs
00310 // as keys is not currently supported.
00311 //#pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id"
00312 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[11]"
00313 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[10]"
00314 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 9]"
00315 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 8]"
00316 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 7]"
00317 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 6]"
00318 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 5]"
00319 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 4]"
00320 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 3]"
00321 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 2]"
00322 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 1]"
00323 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.guidPrefix[ 0]"
00324 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.entityId.entityKey[2]"
00325 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.entityId.entityKey[1]"
00326 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.entityId.entityKey[0]"
00327 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::DataReaderPeriodicReport dr_id.entityId.entityKind"
00328 
00329     struct DataReaderAssociationPeriodic {
00330       GUID_t        dw_id;
00331       unsigned long samples_available;
00332       // Stats      latency_stats;
00333     };
00334     typedef sequence<DataReaderAssociationPeriodic> DRAssociationsPeriodic;
00335     struct DataReaderPeriodicReport {
00336       GUID_t        dr_id;
00337       DRAssociationsPeriodic associations;
00338       NVPSeq        values;
00339     };
00340 
00341 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::TransportReport"
00342 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TransportReport host"
00343 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TransportReport pid"
00344 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::TransportReport transport_id"
00345 
00346     struct TransportReport {
00347       string        host;
00348       long          pid;
00349       unsigned long transport_id;
00350       string        transport_type;
00351       NVPSeq        values;
00352     };
00353 
00354     enum ReportType {
00355       SERVICE_PARTICIPANT_REPORT_TYPE,
00356       DOMAIN_PARTICIPANT_REPORT_TYPE,
00357       TOPIC_REPORT_TYPE,
00358       PUBLISHER_REPORT_TYPE,
00359       SUBSCRIBER_REPORT_TYPE,
00360       DATA_WRITER_REPORT_TYPE,
00361       DATA_WRITER_PERIODIC_REPORT_TYPE,
00362       DATA_READER_REPORT_TYPE,
00363       DATA_READER_PERIODIC_REPORT_TYPE,
00364       TRANSPORT_REPORT_TYPE
00365     };
00366     union GenericReport switch (ReportType) {
00367       case SERVICE_PARTICIPANT_REPORT_TYPE:
00368         ServiceParticipantReport sp_report;
00369       case DOMAIN_PARTICIPANT_REPORT_TYPE:
00370         DomainParticipantReport dp_report;
00371       case TOPIC_REPORT_TYPE:
00372         TopicReport topic_report;
00373       case PUBLISHER_REPORT_TYPE:
00374         PublisherReport publisher_report;
00375       case SUBSCRIBER_REPORT_TYPE:
00376         SubscriberReport subscriber_report;
00377       case DATA_WRITER_REPORT_TYPE:
00378         DataWriterReport dw_report;
00379       case DATA_WRITER_PERIODIC_REPORT_TYPE:
00380         DataWriterPeriodicReport dw_per_report;
00381       case DATA_READER_REPORT_TYPE:
00382         DataReaderReport dr_report;
00383       case DATA_READER_PERIODIC_REPORT_TYPE:
00384         DataReaderPeriodicReport dr_per_report;
00385       case TRANSPORT_REPORT_TYPE:
00386         TransportReport transport_report;
00387     };
00388 
00389     interface ProcessMonitor {
00390       // Pass a name that acts as a global identifier for a given
00391       // entity or individual statistic.  Need to define the actual
00392       // format for this name, but concatenating the entity identifiers
00393       // together with "/" separators should work.  Passing an empty
00394       // string would retrieve the ServiceParticipant information
00395       // (which would list the Domain Participants).
00396       GenericReport retrieve_report(in string name);
00397 
00398       // Allow global enabling disabling of report collection for
00399       // this process.
00400       void enable_report_collection();
00401       void disable_report_collection();
00402 
00403       // Allow global enabling/disabling of report publication
00404       // for this process.
00405       void enable_report_publishing();
00406       void diable_report_publishing();
00407 
00408       // Set the period between publishing samples
00409       void set_publishing_period(in DDS::Duration_t period);
00410       DDS::Duration_t get_publishing_period();
00411     };
00412 
00413   };
00414 
00415 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1