Skip to content

Instantly share code, notes, and snippets.

@b-wind
Created September 14, 2020 16:58
Show Gist options
  • Save b-wind/b3c6a8df69cb3162322710fef591ed19 to your computer and use it in GitHub Desktop.
Save b-wind/b3c6a8df69cb3162322710fef591ed19 to your computer and use it in GitHub Desktop.
sequenceDiagram2
Display the source blob
Display the rendered blob
Raw
<div class="mermaid"><svg xmlns="http://www.w3.org/2000/svg" id="mermaid-svg-5GwyDC0kGXPIY7bu" height="100%" width="100%" style="max-width:1275px;" viewBox="-50 -10 1275 1481"><g></g><g><line id="actor182" x1="75" y1="5" x2="75" y2="1470" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="0" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="75" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="75" dy="0">PlatformScheduleFetch</tspan></text></g><g><line id="actor183" x1="275" y1="5" x2="275" y2="1470" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="200" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="275" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="275" dy="0">ExposureNotification(share)</tspan></text></g><g><line id="actor184" x1="475" y1="5" x2="475" y2="1470" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="400" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="475" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="475" dy="0">ExposureNotificationHandler</tspan></text></g><g><line id="actor185" x1="675" y1="5" x2="675" y2="1470" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="600" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="675" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="675" dy="0">ExposureNotification(ios)</tspan></text></g><g><line id="actor186" x1="875" y1="5" x2="875" y2="1470" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="800" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="875" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="875" dy="0">ENManager</tspan></text></g><g><line id="actor187" x1="1075" y1="5" x2="1075" y2="1470" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="1000" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="1075" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="1075" dy="0">UserDataModel</tspan></text></g><defs><marker id="arrowhead" refX="5" refY="2" markerWidth="6" markerHeight="4" orient="auto"><path d="M 0,0 V 4 L6,2 Z"></path></marker></defs><defs><marker id="crosshead" markerWidth="15" markerHeight="8" orient="auto" refX="16" refY="4"><path fill="black" stroke="#000000" stroke-width="1px" d="M 9,2 V 6 L16,4 Z" style="stroke-dasharray: 0, 0;"></path><path fill="none" stroke="#000000" stroke-width="1px" d="M 0,1 L 6,7 M 6,1 L 0,7" style="stroke-dasharray: 0, 0;"></path></marker></defs><g><text x="175" y="93" class="messageText" style="text-anchor: middle;">UpdateKeysFromServer</text><line x1="75" y1="100" x2="275" y2="100" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><text x="375" y="128" class="messageText" style="text-anchor: middle;">FetchExposureKeyBatchFilesFromServerAsync(submitBatches)</text><line x1="275" y1="135" x2="475" y2="135" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><text x="475" y="163" class="messageText" style="text-anchor: middle;">DownloadBatchAsync</text><path d="M 475,170 C 535,160 535,200 475,190" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></path></g><g><text x="475" y="228" class="messageText" style="text-anchor: middle;">downloadedFiles</text><path d="M 475,235 C 535,225 535,265 475,255" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></path></g><g><text x="475" y="293" class="messageText" style="text-anchor: middle;">downloadedFiles.Count &gt; 0</text><path d="M 475,300 C 535,290 535,330 475,320" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></path></g><g><text x="375" y="358" class="messageText" style="text-anchor: middle;">submitBatches: callback</text><line x1="475" y1="365" x2="275" y2="365" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><text x="475" y="393" class="messageText" style="text-anchor: middle;">PlatformDetectExposuresAsync(downloadedFiles)</text><line x1="275" y1="400" x2="675" y2="400" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><text x="775" y="428" class="messageText" style="text-anchor: middle;">DetectExposuresAsync</text><line x1="675" y1="435" x2="875" y2="435" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><text x="775" y="463" class="messageText" style="text-anchor: middle;">summary</text><line x1="875" y1="470" x2="675" y2="470" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line></g><g><text x="475" y="498" class="messageText" style="text-anchor: middle;">return summary, info</text><line x1="675" y1="505" x2="275" y2="505" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line></g><g><text x="275" y="533" class="messageText" style="text-anchor: middle;">summary?.MatchedKeyCount &gt; 0</text><path d="M 275,540 C 335,530 335,570 275,560" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></path></g><g><text x="375" y="598" class="messageText" style="text-anchor: middle;">ExposureDetectedAsync(summay, info)</text><line x1="275" y1="605" x2="475" y2="605" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><text x="775" y="633" class="messageText" style="text-anchor: middle;">ExposureSummary = summary</text><line x1="475" y1="640" x2="1075" y2="640" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><text x="775" y="668" class="messageText" style="text-anchor: middle;"></text><line x1="1075" y1="675" x2="475" y2="675" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line></g><g><text x="575" y="703" class="messageText" style="text-anchor: middle;">info(): callback</text><line x1="475" y1="710" x2="675" y2="710" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><text x="675" y="738" class="messageText" style="text-anchor: middle;">if summary?.MatchedKeyCount &gt; 0 then</text><path d="M 675,745 C 735,735 735,775 675,765" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></path></g><g><text x="775" y="803" class="messageText" style="text-anchor: middle;">GetExposureInfoAsync(detectionSummary...)</text><line x1="675" y1="810" x2="875" y2="810" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><text x="775" y="838" class="messageText" style="text-anchor: middle;">exposures</text><line x1="875" y1="845" x2="675" y2="845" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line></g><g><text x="675" y="898" class="messageText" style="text-anchor: middle;">info.add(new ExposureInfo())</text><path d="M 675,905 C 735,895 735,935 675,925" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></path></g><g><line x1="565" y1="855" x2="785" y2="855" class="loopLine"></line><line x1="785" y1="855" x2="785" y2="945" class="loopLine"></line><line x1="565" y1="945" x2="785" y2="945" class="loopLine"></line><line x1="565" y1="855" x2="565" y2="945" class="loopLine"></line><polygon points="565,855 615,855 615,868 606.6,875 565,875" class="labelBox"></polygon><text x="572.5" y="870" fill="black" class="labelText"><tspan x="572.5" fill="black">loop</tspan></text><text x="675" y="870" fill="black" class="loopText" style="text-anchor: middle;"><tspan x="675" fill="black">[ exposures ]</tspan></text></g><g><text x="575" y="973" class="messageText" style="text-anchor: middle;">return info</text><line x1="675" y1="980" x2="475" y2="980" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line></g><g><text x="475" y="1008" class="messageText" style="text-anchor: middle;">exposureInfo &lt;- info()</text><path d="M 475,1015 C 535,1005 535,1045 475,1035" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></path></g><g><text x="775" y="1098" class="messageText" style="text-anchor: middle;">ExposureInformation.add( exposure )</text><line x1="475" y1="1105" x2="1075" y2="1105" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></line></g><g><line x1="465" y1="1055" x2="1085" y2="1055" class="loopLine"></line><line x1="1085" y1="1055" x2="1085" y2="1115" class="loopLine"></line><line x1="465" y1="1115" x2="1085" y2="1115" class="loopLine"></line><line x1="465" y1="1055" x2="465" y2="1115" class="loopLine"></line><polygon points="465,1055 515,1055 515,1068 506.6,1075 465,1075" class="labelBox"></polygon><text x="472.5" y="1070" fill="black" class="labelText"><tspan x="472.5" fill="black">loop</tspan></text><text x="775" y="1070" fill="black" class="loopText" style="text-anchor: middle;"><tspan x="775" fill="black">[ add ]</tspan></text></g><g><text x="1075" y="1143" class="messageText" style="text-anchor: middle;">Save</text><path d="M 1075,1150 C 1135,1140 1135,1180 1075,1170" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></path></g><g><text x="375" y="1208" class="messageText" style="text-anchor: middle;">return ExposureDetectedAsync</text><line x1="475" y1="1215" x2="275" y2="1215" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line></g><g><text x="375" y="1243" class="messageText" style="text-anchor: middle;">return submitBatches</text><line x1="275" y1="1250" x2="475" y2="1250" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line></g><g><text x="475" y="1278" class="messageText" style="text-anchor: middle;">delete files</text><path d="M 475,1285 C 535,1275 535,1315 475,1305" class="messageLine0" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="fill: none;"></path></g><g><text x="375" y="1343" class="messageText" style="text-anchor: middle;">return FetchExposureKeyBatchFilesFromServerAsync</text><line x1="475" y1="1350" x2="275" y2="1350" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line></g><g><text x="175" y="1378" class="messageText" style="text-anchor: middle;">processedAnyFiles</text><line x1="275" y1="1385" x2="75" y2="1385" class="messageLine1" stroke-width="2" stroke="black" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line></g><g><rect x="0" y="1405" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="75" y="1437.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="75" dy="0">PlatformScheduleFetch</tspan></text></g><g><rect x="200" y="1405" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="275" y="1437.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="275" dy="0">ExposureNotification(share)</tspan></text></g><g><rect x="400" y="1405" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="475" y="1437.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="475" dy="0">ExposureNotificationHandler</tspan></text></g><g><rect x="600" y="1405" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="675" y="1437.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="675" dy="0">ExposureNotification(ios)</tspan></text></g><g><rect x="800" y="1405" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="875" y="1437.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="875" dy="0">ENManager</tspan></text></g><g><rect x="1000" y="1405" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="1075" y="1437.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle;"><tspan x="1075" dy="0">UserDataModel</tspan></text></g></svg></div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment