magic-wormhole/docs/machines.dot
2017-04-06 12:21:00 -07:00

83 lines
3.7 KiB
Plaintext

digraph {
Wormhole [shape="oval" color="blue" fontcolor="blue"]
Boss [shape="box" label="Boss\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"]
Wormhole -> Boss [style="dashed" label="allocate_code\ninput_code\nset_code\nsend\nclose\n(once)"]
#Wormhole -> Boss [color="blue"]
Boss -> Wormhole [style="dashed" label="got_code\ngot_verifier\nreceived (seq)\nclosed\n(once)"]
#Boss -> Connection [color="blue"]
Boss -> Connection [style="dashed" label="start"]
Connection -> Boss [style="dashed" label="rx_welcome"]
Boss -> Send [style="dashed" label="send"]
Boss -> Mailbox [style="dashed"
label="set_nameplate\nclose\n(once)"
]
#Boss -> Mailbox [color="blue"]
Mailbox -> Boss [style="dashed" label="closed\n(once)"]
Mailbox -> Order [style="dashed" label="got_message (once)"]
Boss -> Key [style="dashed" label="got_code"]
Key -> Boss [style="dashed" label="got_verifier\nscared"]
Order -> Key [style="dashed" label="got_pake"]
Order -> Receive [style="dashed" label="got_message"]
#Boss -> 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 -> Boss [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"
]
#Boss -> Code [color="blue"]
Connection -> Code [style="dashed"
label="connected\nlost\nrx_allocated"]
Code -> Connection [style="dashed"
label="tx_allocate"
]
Nameplates -> Code [style="dashed"
label="got_nameplates"
]
#Code -> Nameplates [color="blue"]
Code -> Nameplates [style="dashed"
label="refresh_nameplates"
]
Boss -> Code [style="dashed"
label="allocate_code\ninput_code\nset_code_code"]
Code -> Boss [style="dashed"
label="got_code"]
}