Reading one member's stream #
A reader reads in order, one box at a time. A scan rechecks boxes previously stepped past and may
jump ahead to a box another member acknowledged, keeping the boxes it skips. A reader acknowledges
the end of the unbroken run it has read (run). See "Rewrite and scan" in the group chat spec.
- stream : Key
- readCap : ByteArray
- next : Index
The index of the next box to read.
The last box read in order, data or tombstone.
- passed : Nat
How many boxes this reader has passed.
Boxes a scan stepped past without reading, oldest first: each with the count it was passed at and the box before it.
The first box passed unread and no longer kept; acknowledgements stop before it.
- mode : Mode
The
Idx64of each acknowledged box a scan has already looked for.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Acknowledged boxes a scan has not looked for yet.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Recheck what was kept, then look for acknowledged boxes ahead, or probe forward from here.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The end of the unbroken run read: how far this stream may be acknowledged.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Drop kept boxes more than window behind, as lost.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The boxes a walk kept, from position start, each with the box before it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Jump to t past steps boxes, keeping the last skipped of them; any before those are
given up on.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The result of a walk: jump to target, keeping the boxes passed.
Equations
- r.walked none skipped steps window = (r, [Cryptlib.Protocols.GroupComm.GroupChatKatzenqt1.Member.Effect.readBox r.stream r.readCap r.next false])
- r.walked (some t) skipped steps window = ((r.jump t skipped steps).forget window, [Cryptlib.Protocols.GroupComm.GroupChatKatzenqt1.Member.Effect.readBox r.stream r.readCap t false])
Instances For
Equations
- Cryptlib.Protocols.GroupComm.GroupChatKatzenqt1.Member.Reader.messageOf (Cryptlib.Protocols.GroupComm.GroupChatKatzenqt1.Member.ReadResult.data m) = m
- Cryptlib.Protocols.GroupComm.GroupChatKatzenqt1.Member.Reader.messageOf (Cryptlib.Protocols.GroupComm.GroupChatKatzenqt1.Member.ReadResult.missing why) = none
Instances For
Read the box expected next, in order.
Equations
Instances For
Take one box read: its message if it is new data to ingest, and what to read next.
Equations
- One or more equations did not get rendered due to their size.