use enum with values log2(STATUS) for identifying status/listener
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
		
							parent
							
								
									ba46cb1140
								
							
						
					
					
						commit
						54b5bed8d2
					
				
					 9 changed files with 103 additions and 71 deletions
				
			
		| 
						 | 
				
			
			@ -81,31 +81,47 @@ extern DDS_EXPORT const dds_entity_t DDS_BUILTIN_TOPIC_DCPSSUBSCRIPTION;
 | 
			
		|||
/** @name Communication Status definitions
 | 
			
		||||
  @{**/
 | 
			
		||||
/** Another topic exists with the same name but with different characteristics. */
 | 
			
		||||
#define DDS_INCONSISTENT_TOPIC_STATUS          1u
 | 
			
		||||
typedef enum dds_status_id {
 | 
			
		||||
  DDS_INCONSISTENT_TOPIC_STATUS_ID,
 | 
			
		||||
  DDS_OFFERED_DEADLINE_MISSED_STATUS_ID,
 | 
			
		||||
  DDS_REQUESTED_DEADLINE_MISSED_STATUS_ID,
 | 
			
		||||
  DDS_OFFERED_INCOMPATIBLE_QOS_STATUS_ID,
 | 
			
		||||
  DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS_ID,
 | 
			
		||||
  DDS_SAMPLE_LOST_STATUS_ID,
 | 
			
		||||
  DDS_SAMPLE_REJECTED_STATUS_ID,
 | 
			
		||||
  DDS_DATA_ON_READERS_STATUS_ID,
 | 
			
		||||
  DDS_DATA_AVAILABLE_STATUS_ID,
 | 
			
		||||
  DDS_LIVELINESS_LOST_STATUS_ID,
 | 
			
		||||
  DDS_LIVELINESS_CHANGED_STATUS_ID,
 | 
			
		||||
  DDS_PUBLICATION_MATCHED_STATUS_ID,
 | 
			
		||||
  DDS_SUBSCRIPTION_MATCHED_STATUS_ID
 | 
			
		||||
}
 | 
			
		||||
dds_status_id_t;
 | 
			
		||||
#define DDS_INCONSISTENT_TOPIC_STATUS          (1u << DDS_INCONSISTENT_TOPIC_STATUS_ID)
 | 
			
		||||
/** The deadline that the writer has committed through its deadline QoS policy was not respected for a specific instance. */
 | 
			
		||||
#define DDS_OFFERED_DEADLINE_MISSED_STATUS     2u
 | 
			
		||||
#define DDS_OFFERED_DEADLINE_MISSED_STATUS     (1u << DDS_OFFERED_DEADLINE_MISSED_STATUS_ID)
 | 
			
		||||
/** The deadline that the reader was expecting through its deadline QoS policy was not respected for a specific instance. */
 | 
			
		||||
#define DDS_REQUESTED_DEADLINE_MISSED_STATUS   4u
 | 
			
		||||
#define DDS_REQUESTED_DEADLINE_MISSED_STATUS   (1u << DDS_REQUESTED_DEADLINE_MISSED_STATUS_ID)
 | 
			
		||||
/** A QoS policy setting was incompatible with what was requested. */
 | 
			
		||||
#define DDS_OFFERED_INCOMPATIBLE_QOS_STATUS    32u
 | 
			
		||||
#define DDS_OFFERED_INCOMPATIBLE_QOS_STATUS    (1u << DDS_OFFERED_INCOMPATIBLE_QOS_STATUS_ID)
 | 
			
		||||
/** A QoS policy setting was incompatible with what is offered. */
 | 
			
		||||
#define DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS  64u
 | 
			
		||||
#define DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS  (1u << DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS_ID)
 | 
			
		||||
/** A sample has been lost (never received). */
 | 
			
		||||
#define DDS_SAMPLE_LOST_STATUS                 128u
 | 
			
		||||
#define DDS_SAMPLE_LOST_STATUS                 (1u << DDS_SAMPLE_LOST_STATUS_ID)
 | 
			
		||||
/** A (received) sample has been rejected. */
 | 
			
		||||
#define DDS_SAMPLE_REJECTED_STATUS             256u
 | 
			
		||||
#define DDS_SAMPLE_REJECTED_STATUS             (1u << DDS_SAMPLE_REJECTED_STATUS_ID)
 | 
			
		||||
/** New information is available. */
 | 
			
		||||
#define DDS_DATA_ON_READERS_STATUS             512u
 | 
			
		||||
#define DDS_DATA_ON_READERS_STATUS             (1u << DDS_DATA_ON_READERS_STATUS_ID)
 | 
			
		||||
/** New information is available. */
 | 
			
		||||
#define DDS_DATA_AVAILABLE_STATUS              1024u
 | 
			
		||||
#define DDS_DATA_AVAILABLE_STATUS              (1u << DDS_DATA_AVAILABLE_STATUS_ID)
 | 
			
		||||
/** The liveliness that the DDS_DataWriter has committed through its liveliness QoS policy was not respected; thus readers will consider the writer as no longer "alive". */
 | 
			
		||||
#define DDS_LIVELINESS_LOST_STATUS             2048u
 | 
			
		||||
#define DDS_LIVELINESS_LOST_STATUS             (1u << DDS_LIVELINESS_LOST_STATUS_ID)
 | 
			
		||||
/** The liveliness of one or more writers, that were writing instances read through the readers has changed. Some writers have become "alive" or "not alive". */
 | 
			
		||||
#define DDS_LIVELINESS_CHANGED_STATUS          4096u
 | 
			
		||||
#define DDS_LIVELINESS_CHANGED_STATUS          (1u << DDS_LIVELINESS_CHANGED_STATUS_ID)
 | 
			
		||||
/** The writer has found a reader that matches the topic and has a compatible QoS. */
 | 
			
		||||
#define DDS_PUBLICATION_MATCHED_STATUS         8192u
 | 
			
		||||
#define DDS_PUBLICATION_MATCHED_STATUS         (1u << DDS_PUBLICATION_MATCHED_STATUS_ID)
 | 
			
		||||
/** The reader has found a writer that matches the topic and has a compatible QoS. */
 | 
			
		||||
#define DDS_SUBSCRIPTION_MATCHED_STATUS        16384u
 | 
			
		||||
#define DDS_SUBSCRIPTION_MATCHED_STATUS        (1u << DDS_SUBSCRIPTION_MATCHED_STATUS_ID)
 | 
			
		||||
/** @}*/
 | 
			
		||||
 | 
			
		||||
/** Read state for a data value */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue