Skip to main content

Module data_stream

Module data_stream 

Source
Expand description

Data stream headers (subgroup, datagram, fetch, object). Draft-17 data stream header encoding and decoding.

Subgroup header type byte: 0b00X1XXXX (bit 4 always set)

  • bit 0 (0x01): PROPERTIES
  • bits 1-2 (0x06): SUBGROUP_ID_MODE (0=zero, 1=first_obj, 2=explicit, 3=reserved)
  • bit 3 (0x08): END_OF_GROUP
  • bit 5 (0x20): DEFAULT_PRIORITY (no priority byte)

Datagram type byte: 0b00X0XXXX (bit 4 always 0)

  • bit 0 (0x01): PROPERTIES
  • bit 1 (0x02): END_OF_GROUP
  • bit 2 (0x04): ZERO_OBJECT_ID (object_id=0, field omitted)
  • bit 3 (0x08): DEFAULT_PRIORITY (no priority byte)
  • bit 5 (0x20): STATUS (status byte replaces payload)

Fetch header: stream type 0x05 + request_id.

StructsΒ§

DatagramHeader
FetchHeader
SubgroupHeader
SubgroupObject
One object within a draft-17 subgroup stream. Object IDs are delta-encoded and the presence of a β€œproperties” block (the draft-17 equivalent of extension headers) is determined by the PROPERTIES bit on the enclosing SubgroupHeader. Use SubgroupObjectReader to encode/decode.
SubgroupObjectReader

ConstantsΒ§

DATAGRAM_DEFAULT_PRIORITY_BIT πŸ”’
DATAGRAM_END_OF_GROUP_BIT πŸ”’
DATAGRAM_PROPERTIES_BIT πŸ”’
DATAGRAM_STATUS_BIT πŸ”’
DATAGRAM_ZERO_OBJECT_ID_BIT πŸ”’
FETCH_STREAM_TYPE πŸ”’
SUBGROUP_BASE_BIT πŸ”’
SUBGROUP_DEFAULT_PRIORITY_BIT πŸ”’
SUBGROUP_END_OF_GROUP_BIT πŸ”’
SUBGROUP_ID_MODE_MASK πŸ”’
SUBGROUP_PROPERTIES_BIT πŸ”’