RTI Connext DDS Micro
Version 2.4.6
|
Kinds of communication status. More...
Macros | |
#define | DDS_STATUS_MASK_NONE |
No bits are set. More... | |
#define | DDS_STATUS_MASK_ALL |
All bits are set. More... | |
Typedefs | |
typedef DDS_UnsignedLong | DDS_StatusMask |
A bit-mask (list) of concrete status types, i.e. DDS_StatusKind[]. More... | |
Kinds of communication status.
Associated with each one of an DDS_Entity's communication status is a logical StatusChangedFlag
. This flag indicates whether that particular communication status has changed since the last time the status was read by the application. The way the status changes is slightly different for the Plain Communication Status and the Read Communication status.
For the plain communication status, the StatusChangedFlag
flag is initially set to FALSE. It becomes TRUE whenever the plain communication status changes and it is reset to DDS_BOOLEAN_FALSE each time the application accesses the plain communication status via the proper get_<plain communication status>()
operation on the DDS_Entity. The communication status is also reset to FALSE whenever the associated listener operation is called as the listener implicitly accesses the status which is passed as a parameter to the operation. The fact that the status is reset prior to calling the listener means that if the application calls the get_<plain communication status> from inside the listener it will see the status already reset. An exception to this rule is when the associated listener is the 'nil' listener. The 'nil' listener is treated as a NOOP and the act of calling the 'nil' listener does not reset the communication status.
For the read communication status, the StatusChangedFlag
flag is initially set to FALSE. The StatusChangedFlag
becomes TRUE when either a data-sample arrives or else the DDS_ViewStateKind, DDS_SampleStateKind, or DDS_InstanceStateKind of any existing sample changes for any reason other than a call to DDS_DataReader_read_next_sample, or DDS_DataReader_take_next_sample. Specifically any of the following events will cause the StatusChangedFlag
to become TRUE:
Depending on the kind of StatusChangedFlag
, the flag transitions to FALSE again as follows:
StatusChangedFlag
becomes FALSE when either the corresponding listener operation (on_data_available) is called or the read_next_sample or take_next_sample operation is called on the associated DDS_DataReader. StatusChangedFlag
becomes FALSE when any of the following events occurs: #define DDS_STATUS_MASK_NONE |
No bits are set.
#define DDS_STATUS_MASK_ALL |
All bits are set.
typedef DDS_UnsignedLong DDS_StatusMask |
A bit-mask (list) of concrete status types, i.e. DDS_StatusKind[].
The bit-mask is an efficient and compact representation of a fixed-length list of DDS_StatusKind values. Bits in the mask correspond to different statuses. You can choose which changes in status will trigger a callback by setting the corresponding status bits in this bit-mask and installing callbacks for each of those statuses. The bits that are true indicate that the listener will be called back for changes in the corresponding status. For example:
or
enum DDS_StatusKind |
Type for status kinds.
Each concrete DDS_Entity is associated with a set of *Status
objects whose values represent the communication status of that DDS_Entity. The communication statuses whose changes can be communicated to the application depend on the DDS_Entity. Each status value can be accessed with a corresponding functionon the DDS_Entity. The changes on these status values cause activation of the corresponding trigger invocation of the proper DDS_Listener objects to asynchronously inform the application.
Enumerator | |
---|---|
DDS_INCONSISTENT_TOPIC_STATUS |
Another topic exists with the same name but different characteristics.
|
DDS_OFFERED_DEADLINE_MISSED_STATUS |
The deadline that the DDS_DataWriter has committed through its DDS_DeadlineQosPolicy was not respected for a specific instance.
|
DDS_REQUESTED_DEADLINE_MISSED_STATUS |
The deadline that the DDS_DataReader was expecting through its DDS_DeadlineQosPolicy was not respected for a specific instance.
|
DDS_OFFERED_INCOMPATIBLE_QOS_STATUS |
A QosPolicy value was incompatible with what was requested.
|
DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS |
A QosPolicy value was incompatible with what is offered.
|
DDS_SAMPLE_LOST_STATUS |
A sample has been lost (i.e. was never received).
|
DDS_SAMPLE_REJECTED_STATUS |
A (received) sample has been rejected.
|
DDS_DATA_ON_READERS_STATUS |
New data is available.
|
DDS_DATA_AVAILABLE_STATUS |
One or more new data samples have been received.
|
DDS_LIVELINESS_LOST_STATUS |
The liveliness that the DDS_DataWriter has committed to through its DDS_LivelinessQosPolicy was not respected, thus DDS_DataReader entities will consider the DDS_DataWriter as no longer alive.
|
DDS_LIVELINESS_CHANGED_STATUS |
The liveliness of one or more DDS_DataWriter that were writing instances read through the DDS_DataReader has changed. Some DDS_DataWriter have become alive or not_alive.
|
DDS_PUBLICATION_MATCHED_STATUS |
The DDS_DataWriter has found DDS_DataReader that matches the DDS_Topic and has compatible QoS.
|
DDS_SUBSCRIPTION_MATCHED_STATUS |
The DDS_DataReader has found DDS_DataWriter that matches the DDS_Topic and has compatible QoS.
|
DDS_INSTANCE_REPLACED_STATUS |
The DDS_DataReader has replaced an instance.
|
DDS_RELIABLE_READER_ACTIVITY_CHANGED_STATUS |
The DDS_DataWriter has detected a change of activity in a reliable DDS_DataReader.
|