Skip to main content

admit_contract_deadline

Function admit_contract_deadline 

Source
pub fn admit_contract_deadline(
    qos: QoSProfile,
    served: QoSPolicyMask,
    ages: &'static [AgeMonitorSpec],
    topic: &str,
) -> (QoSProfile, Option<&'static AgeMonitorSpec>)
Expand description

phase-462 W5b – what a subscription’s creation does about its contract deadline, decided from the backend’s OWN answer (Session::supported_qos_policies) at the moment it is created.

The served set is a run-time fact – a C backend answers through the vtable (issue 1329) – so it is asked here rather than restated in a build table that could disagree with it. Three outcomes:

  • the backend honours DEADLINE and the profile carries the deadline: the backend judges it, nothing is armed;
  • the backend does not honour DEADLINE: a profile deadline EQUAL to the contract’s is stripped (it came from the contract, and refusing it at create would turn a judgeable promise into a boot failure), and the row is armed so the silence rule judges it;
  • the profile never carried the deadline (a registration path that does not fold the launch overrides): the backend cannot judge what it was never told, so the row is armed too.

A profile deadline that DIFFERS from the contract’s is the caller’s own request and is left alone, so a backend that cannot serve it still refuses it by name. Returns the profile to create with and the row to arm.