-
Notifications
You must be signed in to change notification settings - Fork 71
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Feature request
Feature description
Right now, when requesting endpoint info from rmw implementations, e.g. rmw_get_publishers_info_by_topic
, we receive inconsistent results for publishers created with the same QoS settings. This makes it hard to create subscriptions adaptively when using queried QoS profiles. It also means that the reporting is noisy/lossy, we do not know what settings were really given to the endpoints.
- Define a set of constants in the RMW API to define "infinite duration"
- State the contract on the RMW APIs
rmw_get_publishers_info_by_topic
andrmw_get_subscriptions_info_by_topic
that these infinity values will be reported by RMW implementations - State the contract on subscription/publisher creation APIs that an input of Zero duration for QoS policies will be interpreted and reported as Infinity.
The DDS Spec's OMG IDL PSM (Platform Specific Model) defines the following (page 139)
struct Duration_t {
long sec;
unsigned long nanosec;
};
const long DURATION_INFINITE_SEC = 0x7fffffff;
const unsigned long DURATION_INFINITE_NSEC = 0x7fffffff;
const long DURATION_ZERO_SEC = 0;
const unsigned long DURATION_ZERO_NSEC = 0;
We should do something similar. However, since we use a uint64_t
for both fields of rmw_time_t
, I'd suggest the infinity value being "uint64_max" for both seconds and nanoseconds.
Work Log
- Introduce RMW_DURATION_INFINITE constant and API return value promise #301
- Take and return new RMW_DURATION_INFINITE correctly rmw_cyclonedds#288 Change rmw_cyclonedds to conform to API
- Change rmw_fastrtps to conform to API
- Change rmw_connext to conform to API
mm318, fujitatomoya and iuhilnehc-ynos
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request