#if !defined(monitoring_dds_entities_included) #define monitoring_dds_entities_included #include "monitoring_statistics.idl" #include "monitoring_logging.idl" #include "monitoring_dds_common.idl" #include "monitoring_dds_status.idl" #include "monitoring_dds_qos.idl" @autoid @default_nested(TRUE) @observable_name("") module monitoring { module dds { /* --------- resource definitions aligned with DDS-DCPS Entities ----------- */ @mutable @nested @resource(class="registered_type", owner="domain_participant") struct RegisteredType { @observable string registered_type_name; @observable monitoring::TypeIdentifierSerialized complete_type_id; }; @mutable @nested @resource(class="topic", owner="domain_participant", requires="registered_type") struct Topic { @observable GUID_t dds_guid; @observable string topic_name; @observable @attribute TopicQos qos; @observable_name("") @observable TopicStatus status; }; @mutable @nested @resource(class="data_writer", owner="publisher", requires="topic") struct DataWriter { @observable GUID_t dds_guid; @observable @attribute DataWriterQos qos; @observable_name("") @observable DataWriterStatus status; }; @mutable @nested @resource(class="publisher", owner="domain_participant") struct Publisher { @observable GUID_t dds_guid; @observable @attribute PublisherQos qos; }; @mutable @nested @resource(class="data_reader", owner="subscriber", requires="topic") struct DataReader { @observable GUID_t dds_guid; @observable DataReaderQos qos; @observable_name("") @observable DataReaderStatus status; }; @mutable @nested @resource(class="subscriber", owner="domain_participant") struct Subscriber { @observable GUID_t dds_guid; @observable @attribute SubscriberQos qos; }; @mutable @nested @resource(class="domain_participant", owner="application") struct DomainParticipant { @observable GUID_t dds_guid; @observable @attribute DomainId_t domain_id; @observable string domain_tag; @observable VendorId_t vendor_id; @observable @attribute ProtocolVersion_t protocol_version; @observable @attribute ProductVersion_t product_version; @observable string platform; @observable @attribute DomainParticipantQos qos; @observable(distribution=PERIODIC) SendStat send; @observable(distribution=PERIODIC) ReceiveStat receive; @observable(distribution=PERIODIC) NetworkUtilization udpv4_usage; @observable(distribution=PERIODIC) NetworkUtilization udpv6_usage; @observable sequence udpv4_addresses; @observable sequence udpv6_addresses; }; @mutable @nested @resource(class="application", owner="") struct Application { @observable string hostname; @observable @attribute uint64 process_id; @observable HostPlatformResources host_resources; @observable(distribution=PERIODIC) @observable_name("host") HostPlatformUtilization host_utilization; @observable(distribution=PERIODIC) @observable_name("process") ProcessPlatformUtilization process_utilization; @observable LoggingConfig logging; }; };}; // End of modules monitoring::dds #endif /* monitoring_dds_entities_included */