magic-wormhole/docs/machines.dot
Brian Warner 80661392b6 build out all state machines
still early: automat is happy (they're syntactically valid), but the Outputs
are not implemented, and there are plenty of type mismatches
2017-04-06 12:21:00 -07:00

83 lines
3.6 KiB
Plaintext

digraph {
App [shape="box" color="blue" fontcolor="blue"]
Wormhole [shape="box" label="Wormhole\n(manager)"
color="blue" fontcolor="blue"]
Mailbox [shape="box" color="blue" fontcolor="blue"]
Connection [label="Rendezvous\nConnector"
shape="oval" color="blue" fontcolor="blue"]
websocket [color="blue" fontcolor="blue"]
Order [shape="box" label="Ordering" color="blue" fontcolor="blue"]
Key [shape="box" label="Key" color="blue" fontcolor="blue"]
Send [shape="box" label="Send" color="blue" fontcolor="blue"]
Receive [shape="box" label="Receive" color="blue" fontcolor="blue"]
Code [shape="box" label="Code" color="blue" fontcolor="blue"]
Nameplates [shape="box" label="Nameplate\nLister"
color="blue" fontcolor="blue"
]
Connection -> websocket [color="blue"]
#Connection -> Order [color="blue"]
App -> Wormhole [style="dashed" label="set_code\nsend\nclose\n(once)"]
#App -> Wormhole [color="blue"]
Wormhole -> App [style="dashed" label="got_verifier\nreceived\nclosed\n(once)"]
#Wormhole -> Connection [color="blue"]
Wormhole -> Send [style="dashed" label="send"]
Wormhole -> Mailbox [style="dashed"
label="set_nameplate\nclose\n(once)"
]
#Wormhole -> Mailbox [color="blue"]
Mailbox -> Wormhole [style="dashed" label="closed\n(once)"]
Mailbox -> Order [style="dashed" label="got_message (once)"]
Wormhole -> Key [style="dashed" label="set_code"]
Key -> Wormhole [style="dashed" label="got_verifier\nscared"]
Order -> Key [style="dashed" label="got_pake"]
Order -> Receive [style="dashed" label="got_message"]
#Wormhole -> Key [color="blue"]
Key -> Mailbox [style="dashed" label="add_message (pake)\nadd_message (version)"]
Receive -> Send [style="dashed" label="got_verified_key"]
Send -> Mailbox [style="dashed" label="add_message (phase)"]
Key -> Receive [style="dashed" label="got_key"]
Receive -> Wormhole [style="dashed"
label="happy\nscared\ngot_message"]
Mailbox -> Connection [style="dashed"
label="tx_claim\ntx_open\ntx_add\ntx_release\ntx_close\nstop"
]
Connection -> Mailbox [style="dashed"
label="connected\nlost\nrx_claimed\nrx_message\nrx_released\nrx_closed\nstopped"]
Connection -> Nameplates [style="dashed"
label="connected\nlost\nrx_nameplates"
]
Nameplates -> Connection [style="dashed"
label="tx_list"
]
#Wormhole -> Code [color="blue"]
Code -> Connection [style="dashed"
label="tx_allocate"
]
Connection -> Code [style="dashed"
label="rx_allocated"]
Nameplates -> Code [style="dashed"
label="got_nameplates"
]
#Code -> Nameplates [color="blue"]
Code -> Nameplates [style="dashed"
label="refresh_nameplates"
]
Code -> Wormhole [style="dashed"
label="set_code"]
App -> Code [style="dashed"
label="allocate\ninput\nset"]
}