One member of one group chat #
A state machine over Group, driven either by events (handle, returning effects) or by a
client that reads and writes itself (observe, compose, written). A message changes rosters
only once it has a box on the member's stream.
How many of its own indexes a member derives at a time.
Instances For
What stands in a roster for a member known only by its place.
Equations
- Cryptlib.Protocols.GroupComm.GroupChatKatzenqt1.Member.placeholder place = "retired".toUTF8.push place.toUInt8
Instances For
What a composed message does once it has a box.
Roster indexes it assigns, and to whose
Introduction;nonefor the one it carries.Each stream it acknowledges: what had been published before, and now.
- control : Bool
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- readCap : ByteArray
Our own read cap: our key and our stream's first index.
- policy : Retention
- recheck : Nat
How many boxes behind it a reader keeps one a scan stepped past.
- rosters : Rosters
- readers : Common.Dict Key Reader
- sent : SentBox
- ledger : Ledger
- epoch : Nat
- tip : Index
The furthest of our own indexes derived so far.
- deriving_ : Bool
Content waiting for an index.
- pending : Common.Dict Nat Pending
Messages composed that have no box yet, by token.
- tokens : Nat
Introductions read whose member we have not numbered yet.
Owed in our next message, once we have read our
Introduction.Our introducer, until we have read our
Introduction.- awaitingStart : Common.Dict Key Index
IntroducedAtread before theIntroductionit names. - received : Common.Dict (Key × Index) Nat
Content delivered, by sender and box, and the epoch it came.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Instances For
Start a group with founders' read caps, ours among them.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reading #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whether member is in our roster, or will be once what we have composed is written.
Equations
- One or more equations did not get rendered due to their size.
Instances For
member's roster began as introducer's, through the index introducer gave it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Our own Introduction by the introducer we joined through: say where, in IntroducedAt.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Read the new member's stream, and owe it a number.
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
Take one acknowledgement sender sent: of our own stream, it counts only for a box the
Sent-box check finds; of another's, it is heard.
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
Writing #
The next index of our roster, counting what is composed.
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
Number every member whose Introduction we have read and whose introducer we have numbered,
from the next index on: the message, what it does once written, and who is left unnumbered.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Number every member whose Introduction we have read and whose introducer we have numbered,
and say where we were introduced.
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 Introduction of the member read by readCap, numbering it next unless it is numbered
already, and what it does once written.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Acknowledge every stream we read whose run has moved on since we last did: the
acknowledgements, keyed by our roster index and naming each box by its Idx64, what the message
does once written, and the ledger after.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Write what is owed, at most n messages.
Equations
- One or more equations did not get rendered due to their size.
- Cryptlib.Protocols.GroupComm.GroupChatKatzenqt1.Member.Group.flushSome 0 = pure []
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
What to hand a new member, which will start our stream at ownStart.
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
Do whatever has become possible: write what is owed, finish catching up, commit an induction.
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
Membership and time #
Stop reading member and forget its key, keeping its places.
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
Driven by events #
Driven by a client that reads and writes for itself #
A box read on stream, in order: its message, or none for one that holds nothing we can
use.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The messages to send now, in order: a control message if one is owed, then content. Each
takes effect when written.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The message token will never be written: whatever it acknowledged is owed again, and whoever
it numbered still needs numbering.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Begin inducting a member, starting each stream where we have read it now. Anything owed goes out first.
Equations
- One or more equations did not get rendered due to their size.