VLink 2.0.0
A high-performance communication middleware
Loading...
Searching...
No Matches
status_detail.h File Reference

Concrete DDS-compatible status event structs with counter and handle fields. More...

#include <cstdint>
#include <string>
#include "./status.h"
Include dependency graph for status_detail.h:

Go to the source code of this file.

Classes

 Status event fired when a DataWriter gains or loses a matching DataReader. More...
 Status event fired when a DataWriter fails to publish within its offered deadline period. More...
 Status event fired when a DataWriter discovers a subscriber with incompatible QoS. More...
 Status event fired when a DataWriter loses liveliness (failed to assert within duration). More...
 Status event fired when a DataReader gains or loses a matching DataWriter. More...
 Status event fired when a DataReader does not receive data within its requested deadline. More...
 Status event fired when the liveliness state of a matched DataWriter changes. More...
 Status event fired when an incoming sample is rejected due to a resource limit. More...
 Status event fired when a DataReader discovers a publisher with incompatible QoS. More...
 Status event fired when a sample is lost before it can be delivered to the DataReader. More...

Namespaces

Detailed Description

Concrete DDS-compatible status event structs with counter and handle fields.

This file defines the ten concrete status structs derived from Status::Base. Each struct carries the specific counter and handle fields reported by the DDS middleware for that event type.

Writer-side (Publisher / Server / Setter):

  • PublicationMatched – matched subscriber count changed
  • OfferedDeadlineMissed – writer missed its offered publication deadline
  • OfferedIncompatibleQos – incompatible QoS subscriber detected
  • LivelinessLost – writer failed to assert liveliness

Reader-side (Subscriber / Client / Getter):

  • SubscriptionMatched – matched publisher count changed
  • RequestedDeadlineMissed – reader did not receive within its requested deadline
  • LivelinessChanged – publisher liveliness state changed
  • SampleRejected – sample dropped due to resource limit
  • RequestedIncompatibleQos – incompatible QoS publisher detected
  • SampleLost – sample lost before delivery
Accessing status fields
sub->register_status_callback([](vlink::Status::BasePtr status) {
if (status->get_type() == vlink::Status::kSampleRejected) {
auto rej = status->as<vlink::Status::SampleRejected>();
VLOG_W("Sample rejected: limit exceeded");
}
}
});
#define VLOG_W(...)
Definition logger.h:852