Group chat messages on the wire #
A box of a member's stream holds F followed by the CBOR map of one GroupChatMessage, as
katzenqt's models.py writes it: its fields in declaration order, absent ones left out. A message
too long for a box goes to a substream of C chunks ending in an F chunk, announced in the
member's stream by an I chunk carrying the substream's read cap.
Gcm holds what this client reads of a message. The fields between introduction and acks
(file_upload, who, reply_who, tally) are kept as their CBOR, unread; keys katzenqt does not
know are dropped, as its decoder drops them.
The newest message version this client reads; it writes no other.
Instances For
The fields this client keeps without reading, in the order they are written.
Equations
Instances For
- version : Nat
- membershipHash : ByteArray
- msgType : Nat
- introduction : Option Introduction
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Encoding #
A message's fields, in the order they are written.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The CBOR of g.
Equations
Instances For
Decoding #
An introduction map's entries: display_name and read_cap, in either order.
Equations
Instances For
An introduction katzenqt accepts: a name of 1 to 30 characters and a whole read cap.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One map entry: a key this client reads and its value, or none for an entry it passes
over.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Take in one field; a repeated key keeps its last value, as a Python dict does.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The type of a message written before msg_type was, from the field it carries.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A message from the fields read, when katzenqt would accept it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The message a CBOR map holds, or none when katzenqt would refuse it. What follows the map
is ignored, as cbor2.loads ignores it.
Equations
Instances For
Boxes #
What a box of a stream holds.
- final
(cbor : ByteArray)
: Chunk
The last or only chunk of a message.
- continued
(part : ByteArray)
: Chunk
A chunk of a message that continues in the next box.
- indirection
(total : Option Nat)
(readCap : ByteArray)
: Chunk
Where a long message is: the substream's read cap, and how many chunks it holds when the writer said.
- unknown : Chunk
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Between a message and what a member reads of it #
As katzenqt's GcmCodec: a content message's whole CBOR travels as its content; control messages
and introductions are written afresh.
The hash a control message or an introduction carries in place of the membership hash.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
What a member reads of a message's CBOR, or none when it is not a message.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The message whose CBOR a member's m is written as; none when its content is not a
message.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The box for a member's m.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A text message, as a member's content.
Equations
- One or more equations did not get rendered due to their size.