1 line
17 KiB
XML
1 line
17 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1372 633" width="1372" height="633"><rect x="0" y="0" width="100%" height="100%" fill="#FFFFFF"/><defs/><g><g class="title" data-source-line="5"><text x="522.99" y="22.67" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-weight="bold" font-family="Arial">Native input — one VM and one event dispatcher</text></g><g class="message" data-entity-1="part1" data-entity-2="part2" id="msg1" data-source-line="13"/><g class="message" data-entity-1="part2" data-entity-2="part2" id="msg2" data-source-line="14"/><g class="message" data-entity-1="part2" data-entity-2="part3" id="msg3" data-source-line="15"/><g class="message" data-entity-1="part3" data-entity-2="part4" id="msg4" data-source-line="16"/><g class="message" data-entity-1="part4" data-entity-2="part4" id="msg5" data-source-line="17"/><g class="message" data-entity-1="part4" data-entity-2="part5" id="msg6" data-source-line="18"/><g class="message" data-entity-1="part5" data-entity-2="part6" id="msg7" data-source-line="19"/><g class="message" data-entity-1="part6" data-entity-2="part6" id="msg8" data-source-line="20"/><g class="message" data-entity-1="part6" data-entity-2="part5" id="msg9" data-source-line="21"/><g class="message" data-entity-1="part5" data-entity-2="part7" id="msg10" data-source-line="22"/><g class="message" data-entity-1="part7" data-entity-2="part2" id="msg11" data-source-line="23"/><g class="participant-lifeline" data-qualified-name="User" data-entity-uid="part1" id="part1-lifeline" data-source-line="6"><g><title>User</title><rect x="19.28" y="117.28" width="8" height="434.33" fill="#00000000" stroke="#00000000" stroke-width="0"/><line x1="22.78" y1="117.28" x2="22.78" y2="551.61" stroke="#181818" stroke-width="0.5" stroke-dasharray="5,5"/></g></g><g class="participant-lifeline" data-qualified-name="GUI" data-entity-uid="part2" id="part2-lifeline" data-source-line="7"><g><title>TesseraApp</title><rect x="181.8" y="117.28" width="8" height="434.33" fill="#00000000" stroke="#00000000" stroke-width="0"/><line x1="185.3" y1="117.28" x2="185.3" y2="551.61" stroke="#181818" stroke-width="0.5" stroke-dasharray="5,5"/></g></g><g class="participant-lifeline" data-qualified-name="Client" data-entity-uid="part3" id="part3-lifeline" data-source-line="8"><g><title>events..Client</title><rect x="492.17" y="117.28" width="8" height="434.33" fill="#00000000" stroke="#00000000" stroke-width="0"/><line x1="495.67" y1="117.28" x2="495.67" y2="551.61" stroke="#181818" stroke-width="0.5" stroke-dasharray="5,5"/></g></g><g class="participant-lifeline" data-qualified-name="Worker" data-entity-uid="part4" id="part4-lifeline" data-source-line="9"><g><title>API . worker</title><rect x="603.06" y="117.28" width="8" height="434.33" fill="#00000000" stroke="#00000000" stroke-width="0"/><line x1="606.56" y1="117.28" x2="606.56" y2="551.61" stroke="#181818" stroke-width="0.5" stroke-dasharray="5,5"/></g></g><g class="participant-lifeline" data-qualified-name="VM" data-entity-uid="part5" id="part5-lifeline" data-source-line="10"><g><title>ReplSession</title><rect x="861.42" y="117.28" width="8" height="434.33" fill="#00000000" stroke="#00000000" stroke-width="0"/><line x1="864.92" y1="117.28" x2="864.92" y2="551.61" stroke="#181818" stroke-width="0.5" stroke-dasharray="5,5"/></g></g><g class="participant-lifeline" data-qualified-name="Dispatch" data-entity-uid="part6" id="part6-lifeline" data-source-line="11"><g><title>event_dispatch</title><rect x="1115.02" y="117.28" width="8" height="434.33" fill="#00000000" stroke="#00000000" stroke-width="0"/><line x1="1118.52" y1="117.28" x2="1118.52" y2="551.61" stroke="#181818" stroke-width="0.5" stroke-dasharray="5,5"/></g></g><g class="participant-lifeline" data-qualified-name="Refresh" data-entity-uid="part7" id="part7-lifeline" data-source-line="12"><g><title>refresh . publication</title><rect x="1294.79" y="117.28" width="8" height="434.33" fill="#00000000" stroke="#00000000" stroke-width="0"/><line x1="1298.29" y1="117.28" x2="1298.29" y2="551.61" stroke="#181818" stroke-width="0.5" stroke-dasharray="5,5"/></g></g><g class="participant participant-head" data-qualified-name="User" data-entity-uid="part1" id="part1-head" data-source-line="6"><text x="5" y="114.31" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">User</text><circle cx="22.78" cy="50.14" r="8" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><path d="M22.78,58.14 L22.78,85.14 M9.78,66.14 L35.78,66.14 M22.78,85.14 L9.78,100.14 M22.78,85.14 L35.78,100.14" fill="#00000000" stroke="#181818" stroke-width="0.5"/></g><g class="participant participant-head" data-qualified-name="GUI" data-entity-uid="part2" id="part2-head" data-source-line="7"><rect x="141.34" y="86.64" width="87.93" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="148.34" y="106.31" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">TesseraApp</text></g><g class="participant participant-head" data-qualified-name="Client" data-entity-uid="part3" id="part3-head" data-source-line="8"><rect x="446.26" y="86.64" width="98.82" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="453.26" y="106.31" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">events::Client</text></g><g class="participant participant-head" data-qualified-name="Worker" data-entity-uid="part4" id="part4-head" data-source-line="9"><rect x="561.44" y="86.64" width="90.24" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="568.44" y="106.31" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">API / worker</text></g><g class="participant participant-head" data-qualified-name="VM" data-entity-uid="part5" id="part5-head" data-source-line="10"><rect x="818.62" y="86.64" width="92.6" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="825.62" y="106.31" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">ReplSession</text></g><g class="participant participant-head" data-qualified-name="Dispatch" data-entity-uid="part6" id="part6-head" data-source-line="11"><rect x="1064.43" y="86.64" width="108.18" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="1071.43" y="106.31" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">event_dispatch</text></g><g class="participant participant-head" data-qualified-name="Refresh" data-entity-uid="part7" id="part7-head" data-source-line="12"><rect x="1230.2" y="86.64" width="136.18" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="1237.2" y="106.31" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">refresh / publication</text></g><g class="participant participant-tail" data-qualified-name="User" data-entity-uid="part1" id="part1-tail" data-source-line="6"><text x="5" y="564.28" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">User</text><circle cx="22.78" cy="575.75" r="8" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><path d="M22.78,583.75 L22.78,610.75 M9.78,591.75 L35.78,591.75 M22.78,610.75 L9.78,625.75 M22.78,610.75 L35.78,625.75" fill="#00000000" stroke="#181818" stroke-width="0.5"/></g><g class="participant participant-tail" data-qualified-name="GUI" data-entity-uid="part2" id="part2-tail" data-source-line="7"><rect x="141.34" y="551.61" width="87.93" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="148.34" y="571.28" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">TesseraApp</text></g><g class="participant participant-tail" data-qualified-name="Client" data-entity-uid="part3" id="part3-tail" data-source-line="8"><rect x="446.26" y="551.61" width="98.82" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="453.26" y="571.28" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">events::Client</text></g><g class="participant participant-tail" data-qualified-name="Worker" data-entity-uid="part4" id="part4-tail" data-source-line="9"><rect x="561.44" y="551.61" width="90.24" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="568.44" y="571.28" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">API / worker</text></g><g class="participant participant-tail" data-qualified-name="VM" data-entity-uid="part5" id="part5-tail" data-source-line="10"><rect x="818.62" y="551.61" width="92.6" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="825.62" y="571.28" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">ReplSession</text></g><g class="participant participant-tail" data-qualified-name="Dispatch" data-entity-uid="part6" id="part6-tail" data-source-line="11"><rect x="1064.43" y="551.61" width="108.18" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="1071.43" y="571.28" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">event_dispatch</text></g><g class="participant participant-tail" data-qualified-name="Refresh" data-entity-uid="part7" id="part7-tail" data-source-line="12"><rect x="1230.2" y="551.61" width="136.18" height="29.64" rx="2.5" ry="2.5" fill="#E2E2F0" stroke="#181818" stroke-width="0.5"/><text x="1237.2" y="571.28" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">refresh / publication</text></g><g class="message" data-entity-1="part1" data-entity-2="part2" id="msg1" data-source-line="13"><polygon points="173.3,142.92 183.3,146.92 173.3,150.92 177.3,146.92" fill="#181818" stroke="#181818" stroke-width="1"/><line x1="22.78" y1="146.92" x2="179.3" y2="146.92" stroke="#181818" stroke-width="1"/><text x="29.78" y="141.96" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">pointer press / release</text></g><g class="message" data-entity-1="part2" data-entity-2="part2" id="msg2" data-source-line="14"><line x1="185.3" y1="176.56" x2="227.3" y2="176.56" stroke="#181818" stroke-width="1"/><line x1="227.3" y1="176.56" x2="227.3" y2="189.56" stroke="#181818" stroke-width="1"/><line x1="186.3" y1="189.56" x2="227.3" y2="189.56" stroke="#181818" stroke-width="1"/><polygon points="196.3,185.56 186.3,189.56 196.3,193.56 192.3,189.56" fill="#181818" stroke="#181818" stroke-width="1"/><text x="192.3" y="171.6" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">published geometry; matching target</text></g><g class="message" data-entity-1="part2" data-entity-2="part3" id="msg3" data-source-line="15"><polygon points="483.67,215.2 493.67,219.2 483.67,223.2 487.67,219.2" fill="#181818" stroke="#181818" stroke-width="1"/><line x1="185.3" y1="219.2" x2="489.67" y2="219.2" stroke="#181818" stroke-width="1"/><text x="192.3" y="214.24" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">Input(window, session, layout_version, mount)</text></g><g class="message" data-entity-1="part3" data-entity-2="part4" id="msg4" data-source-line="16"><polygon points="594.56,244.84 604.56,248.84 594.56,252.84 598.56,248.84" fill="#181818" stroke="#181818" stroke-width="1"/><line x1="495.67" y1="248.84" x2="600.56" y2="248.84" stroke="#181818" stroke-width="1"/><text x="502.67" y="243.88" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">POST /events</text></g><g class="message" data-entity-1="part4" data-entity-2="part4" id="msg5" data-source-line="17"><line x1="606.56" y1="278.48" x2="648.56" y2="278.48" stroke="#181818" stroke-width="1"/><line x1="648.56" y1="278.48" x2="648.56" y2="291.48" stroke="#181818" stroke-width="1"/><line x1="607.56" y1="291.48" x2="648.56" y2="291.48" stroke="#181818" stroke-width="1"/><polygon points="617.56,287.48 607.56,291.48 617.56,295.48 613.56,291.48" fill="#181818" stroke="#181818" stroke-width="1"/><text x="613.56" y="273.52" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">reject stale source/destination identities</text></g><g class="message" data-entity-1="part4" data-entity-2="part5" id="msg6" data-source-line="18"><polygon points="852.92,317.13 862.92,321.13 852.92,325.13 856.92,321.13" fill="#181818" stroke="#181818" stroke-width="1"/><line x1="606.56" y1="321.13" x2="858.92" y2="321.13" stroke="#181818" stroke-width="1"/><text x="613.56" y="316.16" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">dispatch_incremental</text></g><g class="message" data-entity-1="part5" data-entity-2="part6" id="msg7" data-source-line="19"><polygon points="1106.52,346.77 1116.52,350.77 1106.52,354.77 1110.52,350.77" fill="#181818" stroke="#181818" stroke-width="1"/><line x1="864.92" y1="350.77" x2="1112.52" y2="350.77" stroke="#181818" stroke-width="1"/><text x="871.92" y="345.8" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">target Block + optional Mount</text></g><g class="message" data-entity-1="part6" data-entity-2="part6" id="msg8" data-source-line="20"><line x1="1118.52" y1="380.41" x2="1160.52" y2="380.41" stroke="#181818" stroke-width="1"/><line x1="1160.52" y1="380.41" x2="1160.52" y2="393.41" stroke="#181818" stroke-width="1"/><line x1="1119.52" y1="393.41" x2="1160.52" y2="393.41" stroke="#181818" stroke-width="1"/><polygon points="1129.52,389.41 1119.52,393.41 1129.52,397.41 1125.52,393.41" fill="#181818" stroke="#181818" stroke-width="1"/><text x="1125.52" y="375.44" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">capture -> target -> bubble</text></g><g class="message" data-entity-1="part6" data-entity-2="part5" id="msg9" data-source-line="21"><polygon points="875.92,419.05 865.92,423.05 875.92,427.05 871.92,423.05" fill="#181818" stroke="#181818" stroke-width="1"/><line x1="869.92" y1="423.05" x2="1117.52" y2="423.05" stroke="#181818" stroke-width="1"/><text x="881.92" y="418.08" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">budgeted handler / onEvent / onClick</text></g><g class="message" data-entity-1="part5" data-entity-2="part7" id="msg10" data-source-line="22"><polygon points="1286.29,448.69 1296.29,452.69 1286.29,456.69 1290.29,452.69" fill="#181818" stroke="#181818" stroke-width="1"/><line x1="864.92" y1="452.69" x2="1292.29" y2="452.69" stroke="#181818" stroke-width="1"/><text x="871.92" y="447.72" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">update related presentations</text></g><g class="message" data-entity-1="part7" data-entity-2="part2" id="msg11" data-source-line="23"><polygon points="196.3,478.33 186.3,482.33 196.3,486.33 192.3,482.33" fill="#181818" stroke="#181818" stroke-width="1"/><line x1="190.3" y1="482.33" x2="1297.29" y2="482.33" stroke="#181818" stroke-width="1" stroke-dasharray="2,2"/><text x="202.3" y="477.36" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">Frame / DocumentUpdated</text></g><path d="M960.57,495.33 L960.57,536.33 L1275.57,536.33 L1275.57,505.33 L1265.57,495.33 L960.57,495.33" fill="#FEFFDD" stroke="#181818" stroke-width="0.5"/><path d="M1265.57,495.33 L1265.57,505.33 L1275.57,505.33 L1265.57,495.33" fill="#FEFFDD" stroke="#181818" stroke-width="0.5"/><text x="966.57" y="513" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">Without a Mount, dispatch visits only the target.</text><text x="966.57" y="528.64" font-size="14" fill="#000000" xml:space="preserve" style="white-space: pre" font-family="Arial">With a Mount, traversal follows that occurrence.</text><?plantuml-src RLFBRjim4BphAnRffKMT60LwSe40Rb8NFZWDaZWv6YjgRR6cI89SsN1F_OX-OR-aIqf-2AXFQ-xCFcPMSQkjnu0DbAYsc-1QMzqvumAyc-LV4K-8YjRO6fuvom_O44o3HlF__BF-HV3fyqKorbYvlRORMAE9LB1cG_20h7S40ceP_lx-0yuIl2u0RPL3sf5bg7JqoAgcKA1YcMqP9PIwh9NsA8WNYlA4K-y18tnVpWVPgrmcJYPtHajmbJ1TE8HD7-SmXhqBMmePz9R30UY9l7cMRjhPX7XT3BAvqUeuRmBSz_6mKw1re5XBDz-MHYkHmTdSygdB56b5kBvDky04lDEMvS5BBWeha24K5LFs34gbOaqLRCWrnE7m1PhKEwdE63R4HqAtlN3cIVdtuekOCuBOBJO2WmVNycf7eVlVo5tmXwAdIO5E6Idm-EFv1SQTm4N_UfaFz9CKGsGKkwDhWw9nHP6rpJk3heIfMTCbMovWSd9zfQqAr0XChaqoaZ-AAgXkB_XgdDh2Ht0-LKK3YpHnSG8EIGezju7IQy-Ng6pBqj20akSesqeGecejLsbamB6SvhTyc2aIJTIsdwitJqYjhv0f-OI9cdnB2wJXOd64NP-icuNqGOtXtgasRRhCzAgmJeeuiU5yHs-QQ_46i5jnTD89TZfgZZAIEG3NrAzsanbdE0TCjef4QsUCsqV18eDJgWs1hAARWkJhIvt_0G00?></g></svg> |