Skip to main content

track_property_value_in_range

Function track_property_value_in_range 

Source
fn track_property_value_in_range(key: u64, value: u64) -> bool
Expand description

Whether value is inside the range draft-19 allows for a Track Property type that restricts one.

Two types do, and each answers anything outside its range with a session close. DEFAULT_PUBLISHER_GROUP_ORDER (0x22), Section 12.5: “The allowed values are Ascending (0x1) or Descending (0x2). If an endpoint receives a value outside this range, it MUST close the session with PROTOCOL_VIOLATION.” DYNAMIC_GROUPS (0x30), Section 12.6: “The allowed values are 0 or 1… If an endpoint receives a value larger than 1, it MUST close the session with PROTOCOL_VIOLATION.”

Both are Track Properties, so the list they arrive in is the one carried by a control message rather than the properties on an object.

DEFAULT_PUBLISHER_PRIORITY (0x0E) is not here. Section 12.4 says “Priorities above 255 are invalid” and stops, where the two above name a consequence in the next clause. A range stated without one is not a close.

The numbers belong to the Property registry and not the Message Parameter one. Type 0x22 is GROUP_ORDER as a parameter and DEFAULT_PUBLISHER_GROUP_ORDER as a property, and the two happen to permit the same pair of values while meaning different things — one subscriber’s preference against a property of the track. Reading either table for the other’s types would be right by accident here and wrong at the next entry.