#if !defined(monitoring_dds_status_included) #define monitoring_dds_status_included #include "monitoring_dds_common.idl" @autoid @default_nested(TRUE) @observable_name("") module monitoring { module dds { // ---------------------------------------------------------------------- // Status to support listeners and conditions // ---------------------------------------------------------------------- typedef uint32 StatusKind; typedef uint32 StatusMask; // bit-mask StatusKind const StatusKind INCONSISTENT_TOPIC_STATUS = 0x0001 << 0; const StatusKind OFFERED_DEADLINE_MISSED_STATUS = 0x0001 << 1; const StatusKind REQUESTED_DEADLINE_MISSED_STATUS = 0x0001 << 2; const StatusKind OFFERED_INCOMPATIBLE_QOS_STATUS = 0x0001 << 5; const StatusKind REQUESTED_INCOMPATIBLE_QOS_STATUS = 0x0001 << 6; const StatusKind SAMPLE_LOST_STATUS = 0x0001 << 7; const StatusKind SAMPLE_REJECTED_STATUS = 0x0001 << 8; const StatusKind DATA_ON_READERS_STATUS = 0x0001 << 9; const StatusKind DATA_AVAILABLE_STATUS = 0x0001 << 10; const StatusKind LIVELINESS_LOST_STATUS = 0x0001 << 11; const StatusKind LIVELINESS_CHANGED_STATUS = 0x0001 << 12; const StatusKind PUBLICATION_MATCHED_STATUS = 0x0001 << 13; const StatusKind SUBSCRIPTION_MATCHED_STATUS = 0x0001 << 14; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") struct InconsistentTopicStatus { @observable_name("total") int32 total_count; int32 total_count_change; }; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") struct SampleLostStatus { @observable_name("total") int32 total_count; int32 total_count_change; }; enum SampleRejectedStatusKind { NOT_REJECTED, REJECTED_BY_INSTANCES_LIMIT, REJECTED_BY_SAMPLES_LIMIT, REJECTED_BY_SAMPLES_PER_INSTANCE_LIMIT }; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") struct SampleRejectedStatus { @observable_name("total") int32 total_count; int32 total_count_change; SampleRejectedStatusKind last_reason; InstanceHandle_t last_instance_handle; }; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") struct LivelinessLostStatus { @observable_name("total") int32 total_count; int32 total_count_change; }; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") struct LivelinessChangedStatus { int32 alive_count; int32 not_alive_count; int32 alive_count_change; int32 not_alive_count_change; InstanceHandle_t last_publication_handle; }; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") struct OfferedDeadlineMissedStatus { @observable_name("total") int32 total_count; int32 total_count_change; InstanceHandle_t last_instance_handle; }; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") struct RequestedDeadlineMissedStatus { @observable_name("total") int32 total_count; int32 total_count_change; InstanceHandle_t last_instance_handle; }; @final @nested struct QosPolicyCount { QosPolicyId_t policy_id; int32 count; }; // typedef sequence QosPolicyCountSeq; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") struct OfferedIncompatibleQosStatus { @observable_name("total") int32 total_count; int32 total_count_change; QosPolicyId_t last_policy_id; sequence policies; }; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") struct RequestedIncompatibleQosStatus { @observable_name("total") int32 total_count; int32 total_count_change; QosPolicyId_t last_policy_id; sequence policies; }; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") @observable_view(level=1, select="%_peak") struct PublicationMatchedStatus { @observable_name("total") int32 total_count; int32 total_count_change; int32 current_count; int32 current_count_change; InstanceHandle_t last_subscription_handle; }; @appendable @nested @observable_unit(distribution=ON_CHANGE) @observable_view(select="%_count") @observable_view(level=1, select="%_peak") struct SubscriptionMatchedStatus { @observable_name("total") int32 total_count; int32 total_count_change; int32 current_count; int32 current_count_change; InstanceHandle_t last_publication_handle; }; @appendable @nested @observable_unit(distribution=PERIODIC) @observable_view(select="sample_count") @observable_view(level=1, select="%_count") @observable_view(level=2, select="%_peak") struct DataWriterCacheStatus { @observable_name("samples") int64 sample_count; @observable_name("alive_instances") int64 alive_instance_count; @observable_name("disposed_instances") int64 disposed_instance_count; @observable_name("unregistered_instances") int64 unregistered_instance_count; }; @appendable @nested @observable_unit(distribution=PERIODIC) @observable_view(level=0, select="%_sample_count;pushed_sample_bytes") @observable_view(level=1, select="%_count;%_sample_bytes;send_window_size") @observable_view(level=2, select="%_bytes;%_sequence_number") struct DataWriterProtocolStatus { @observable_name("pushed_samples_total") int64 pushed_sample_count; int64 pushed_sample_count_change; @observable_name("pushed_sample_bytes_total") int64 pushed_sample_bytes; int64 pushed_sample_bytes_change; @observable_name("filtered_samples_total") int64 filtered_sample_count; int64 filtered_sample_count_change; @observable_name("filtered_samples_bytes_total") int64 filtered_sample_bytes; int64 filtered_sample_bytes_change; @observable_name("sent_heartbeats_total") int64 sent_heartbeat_count; int64 sent_heartbeat_count_change; @observable_name("sent_heartbeats_bytes_total") int64 sent_heartbeat_bytes; int64 sent_heartbeat_bytes_change; @observable_name("pulled_samples_total") int64 pulled_sample_count; // pulled_samples int64 pulled_sample_count_change; @observable_name("pulled_sample_bytes_total") int64 pulled_sample_bytes; int64 pulled_sample_bytes_change; @observable_name("received_acks_total") int64 received_ack_count; int64 received_ack_count_change; @observable_name("received_ack_bytes_total") int64 received_ack_bytes; int64 received_ack_bytes_change; @observable_name("received_nacks_total") int64 received_nack_count; int64 received_nack_count_change; @observable_name("received_nack_bytes_total") int64 received_nack_bytes; int64 received_nack_bytes_change; @observable_name("sent_gaps_total") int64 sent_gap_count; int64 sent_gap_count_change; @observable_name("sent_gap_bytes_total") int64 sent_gap_bytes; int64 sent_gap_bytes_change; @observable_name("rejected_samples_total") int64 rejected_sample_count; int64 rejected_sample_count_change; int32 send_window_size; }; @appendable @nested @observable_unit(distribution=PERIODIC) @observable_view(level=0, select="%_sample_count") @observable_view(level=1, select="%_count;%_writer_cache;%_peak") struct ReliableWriterCacheChangedStatus { @observable_name("empty_total") int32 empty_reliable_writer_cache; @observable_name("full_total") int32 full_reliable_writer_cache; @observable_name("unack_samples") int32 unacknowledged_sample_count; @observable_name("replaced_unack_samples_total") int64 replaced_unacknowledged_sample_count; }; @appendable @nested @observable_unit(distribution=PERIODIC) @observable_view(level=0, select="sample_count;%_instance_count") @observable_view(level=1, select="%_count") @observable_view(level=2, select="%_peak") struct DataReaderCacheStatus { @observable_name("samples") int64 sample_count; @observable_name("ownership_dropped_samples_total") int64 ownership_dropped_sample_count; @observable_name("content_filter_dropped_samples_total") int64 content_filter_dropped_sample_count; @observable_name("time_based_filter_dropped_samples_total") int64 time_based_filter_dropped_sample_count; @observable_name("expired_dropped_samples_total") int64 expired_dropped_sample_count; @observable_name("alive_instances") int64 alive_instance_count; @observable_name("no_writers_instances") int64 no_writers_instance_count; int64 disposed_instance_count; }; @appendable @nested @observable_unit(distribution=PERIODIC) @observable_view(level=0, select="%_sample_count;received_fragment_count") @observable_view(level=1, select="%_count;%_sample_bytes") @observable_view(level=2, select="%_bytes;%_sequence_number") struct DataReaderProtocolStatus { @observable_name("received_samples_total") int64 received_sample_count; int64 received_sample_count_change; @observable_name("received_sample_bytes_total") int64 received_sample_bytes; int64 received_sample_bytes_change; @observable_name("duplicate_samples_total") int64 duplicate_sample_count; int64 duplicate_sample_count_change; @observable_name("duplicate_sample_bytes_total") int64 duplicate_sample_bytes; int64 duplicate_sample_bytes_change; @observable_name("filtered_samples_total") int64 filtered_sample_count; int64 filtered_sample_count_change; @observable_name("filtered_sample_bytes_total") int64 filtered_sample_bytes; int64 filtered_sample_bytes_change; @observable_name("received_heartbeats_total") int64 received_heartbeat_count; int64 received_heartbeat_count_change; @observable_name("received_heartbeat_bytes_total") int64 received_heartbeat_bytes; int64 received_heartbeat_bytes_change; @observable_name("sent_acks_total") int64 sent_ack_count; int64 sent_ack_count_change; @observable_name("sent_ack_bytes_total") int64 sent_ack_bytes; int64 sent_ack_bytes_change; @observable_name("sent_nacks_total") int64 sent_nack_count; int64 sent_nack_count_change; @observable_name("sent_nack_bytes_total") int64 sent_nack_bytes; int64 sent_nack_bytes_change; @observable_name("received_gaps_total") int64 received_gap_count; int64 received_gap_count_change; @observable_name("received_gap_bytes_total") int64 received_gap_bytes; int64 received_gap_bytes_change; @observable_name("rejected_samples_total") int64 rejected_sample_count; int64 rejected_sample_count_change; }; @mutable @nested struct DataWriterStatus { // DDS-MONITORING LivelinessLostStatus liveliness_lost; @observable_name("deadline_missed") OfferedDeadlineMissedStatus offered_deadline_missed; @observable_name("incompatible_qos") OfferedIncompatibleQosStatus offered_incompatible_qos; PublicationMatchedStatus publication_matched; DataWriterCacheStatus cache; DataWriterProtocolStatus protocol; @observable_name("reliable_cache") ReliableWriterCacheChangedStatus reliable_cache_changed; @observable_name("reliable_reader_activity") }; @mutable @nested struct DataReaderStatus { // DDS-MONITORING SampleRejectedStatus sample_rejected; @observable_name("liveliness") LivelinessChangedStatus liveliness_changed; @observable_name("deadline_missed") RequestedDeadlineMissedStatus requested_deadline_missed; @observable_name("incompatible_qos") RequestedIncompatibleQosStatus requested_incompatible_qos; SampleLostStatus sample_lost; SubscriptionMatchedStatus subscription_matched; DataReaderCacheStatus cache; DataReaderProtocolStatus protocol; }; @mutable @nested struct TopicStatus { // DDS-MONITORING @observable_name("inconsistent") InconsistentTopicStatus inconsistent_topic; }; };}; // End of modules monitoring::dds #endif /* monitoring_dds_status_included */