WhisperCom/docs/overviewUML.svg

3 lines
42 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2161px" height="961px" version="1.1" content="&lt;mxfile userAgent=&quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Atom/1.58.0 Chrome/83.0.4103.122 Electron/9.4.4 Safari/537.36&quot; version=&quot;9.1.0&quot; editor=&quot;www.draw.io&quot;&gt;&lt;diagram&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g transform="translate(0.5,0.5)"><rect x="350" y="0" width="140" height="60" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(350.5,0.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="138" height="58" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 139px; height: 59px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>std::uint8_t</b></p><hr size="1" /><div style="height: 2px"></div><hr size="1" /><div style="height: 2px"></div></div></foreignObject><text x="69" y="35" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="60" y="140" width="190" height="140" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(60.5,140.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="188" height="138" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 189px; height: 139px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Enumeration&gt;&gt;</i><br /><b>Whisper::Data::Classification</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">PUBLIC</p><p style="margin: 0px ; margin-left: 4px">OPEN</p><p style="margin: 0px ; margin-left: 4px">RESTRICTED</p><p style="margin: 0px ; margin-left: 4px">CONFIDENTIAL</p><p style="margin: 0px ; margin-left: 4px">SECRET</p><p style="margin: 0px ; margin-left: 4px">TOP_SECRET</p></div></foreignObject><text x="94" y="75" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 155 140 L 337.7 36.94" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 349.03 30.55 L 340.9 42.6 L 334.51 31.28 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="290" y="140" width="190" height="140" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(290.5,140.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="188" height="138" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 189px; height: 139px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Enumeration&gt;&gt;</i><br /><b>Whisper::Priority</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">HIGH</p><p style="margin: 0px ; margin-left: 4px">MEDIUM</p><p style="margin: 0px ; margin-left: 4px">LOW</p></div></foreignObject><text x="94" y="75" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 385 140 L 385 74.12" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 385 61.12 L 391.5 74.12 L 378.5 74.12 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="500" y="140" width="190" height="140" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(500.5,140.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="188" height="138" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 189px; height: 139px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Enumeration&gt;&gt;</i><br /><b>Whisper::Reliability</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">YES</p><p style="margin: 0px ; margin-left: 4px">NO</p></div></foreignObject><text x="94" y="75" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 595 140 L 432.84 65.87" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 421.02 60.46 L 435.54 59.96 L 430.14 71.78 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="220" y="450" width="280" height="130" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(220.5,450.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="278" height="128" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 279px; height: 129px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Message</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ recipient : Whisper::Participant</p><p style="margin: 0px ; margin-left: 4px">+ classification : Whisper::Data::Classification</p><p style="margin: 0px ; margin-left: 4px">+ priority : Whisper::Priority</p><p style="margin: 0px ; margin-left: 4px">+ reliability : Whisper::Reliability</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Type</p></div></foreignObject><text x="139" y="70" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 142 297.99 L 142 360 Q 142 370 152 370 L 320 370 Q 330 370 330 380 L 330 447.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 142 282.99 L 146.41 290.49 L 142 297.99 L 137.59 290.49 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 323.5 435.88 L 330 448.88 L 336.5 435.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(156.5,295.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">1</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">1</text></switch></g><path d="M 385 295.99 L 385 355 Q 385 365 375 365 L 367.5 365 Q 360 365 360 375 L 360 447.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 385 280.99 L 389.41 288.49 L 385 295.99 L 380.59 288.49 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 353.5 435.88 L 360 448.88 L 366.5 435.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(389.5,265.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">1</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">1</text></switch></g><path d="M 595 295.99 L 595 355 Q 595 365 585 365 L 440 365 Q 430 365 430 375 L 430 447.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 595 280.99 L 599.41 288.49 L 595 295.99 L 590.59 288.49 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 423.5 435.88 L 430 448.88 L 436.5 435.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(599.5,265.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">1</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">1</text></switch></g><rect x="150" y="630" width="190" height="140" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(150.5,630.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="188" height="138" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 189px; height: 139px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Interface&gt;&gt;</i><br /><b>Whisper::NetworkEncoding</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field1: Type<br />+ field2: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method1(Type): Type<br />+ method2(Type, Type): Type</p></div></foreignObject><text x="94" y="75" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="0" y="870" width="160" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(0.5,870.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="158" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 159px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Encoding::JSON</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Type</p></div></foreignObject><text x="79" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 110 870 L 188.67 780.6" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 197.26 770.84 L 193.55 784.89 L 183.79 776.3 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="165" y="870" width="160" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(165.5,870.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="158" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 159px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Encoding::RAW</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Type</p></div></foreignObject><text x="79" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 245 870 L 245 784.12" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 245 771.12 L 251.5 784.12 L 238.5 784.12 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="330" y="870" width="160" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(330.5,870.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="158" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 159px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Encoding::XML</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Type</p></div></foreignObject><text x="79" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 410 870 L 303.73 779.17" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 293.85 770.73 L 307.96 774.23 L 299.51 784.11 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 260 613.01 L 260 609.01 Q 260 605 270 605 L 294 605 Q 304 605 304 595.12 L 304 585.24" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 260 628.01 L 255.59 620.51 L 260 613.01 L 264.41 620.51 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 310.5 597.12 L 304 584.12 L 297.5 597.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(246.5,605.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">1</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">1</text></switch></g><rect x="740" y="630" width="190" height="140" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(740.5,630.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="188" height="138" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 189px; height: 139px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Interface&gt;&gt;</i><br /><b>Whisper::NetworkEncryption</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px"><br /></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ sign()<br />+ verify()</p><p style="margin: 0px ; margin-left: 4px">+ encrypt()</p><p style="margin: 0px ; margin-left: 4px">+ decrypt()</p></div></foreignObject><text x="94" y="75" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 835 614.01 L 835 609.51 Q 835 605 825 605 L 440 605 Q 430 605 430 595 L 430 582.24" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 835 629.01 L 830.59 621.51 L 835 614.01 L 839.41 621.51 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 436.5 594.12 L 430 581.12 L 423.5 594.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(728.5,625.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">1</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">1</text></switch></g><rect x="510" y="870" width="280" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(510.5,870.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="278" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 279px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Encryption::PreSharedKeyAES</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Type</p></div></foreignObject><text x="139" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 650 870 L 776.57 778.28" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 787.09 770.66 L 780.38 783.55 L 772.75 773.02 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="960" y="630" width="190" height="140" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(960.5,630.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="188" height="138" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 189px; height: 139px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Interface&gt;&gt;</i><br /><b>Whisper::NetworkAccess</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px"><br /></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ allowed()</p></div></foreignObject><text x="94" y="75" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1055 614.01 L 1055 555 Q 1055 545 1045 545 L 830 545 Q 820 545 820 535 L 820 462.24" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1055 629.01 L 1050.59 621.51 L 1055 614.01 L 1059.41 621.51 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 826.5 474.12 L 820 461.12 L 813.5 474.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1022.5,565.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">1</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">1</text></switch></g><rect x="1050" y="190" width="160" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(1050.5,190.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="158" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 159px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::NIS</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Type</p></div></foreignObject><text x="79" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1125 106.37 L 1125 145 L 1120 145 L 1120 185.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1125 101.12 L 1128.5 108.12 L 1125 106.37 L 1121.5 108.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1120 190.88 L 1116.5 183.88 L 1120 185.63 L 1123.5 183.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1050 30 L 1186 30 L 1200 44 L 1200 100 L 1050 100 L 1050 30 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1186 30 L 1186 44 L 1200 44" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1052.5,31.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="146" height="40" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 146px; white-space: normal; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Listen to UDP Broadcasts and keep a list of Whisper Network Participants</div></div></foreignObject><text x="73" y="26" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="2000" y="100" width="160" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(2000.5,100.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="158" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 159px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Service</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): </p></div></foreignObject><text x="79" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="1180" y="550" width="160" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(1180.5,550.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="158" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 159px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Routing</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Type</p></div></foreignObject><text x="79" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="1180" y="670" width="160" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(1180.5,670.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="158" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 159px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Rule</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Type</p></div></foreignObject><text x="79" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="1440" y="60" width="350" height="210" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(1440.5,60.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="348" height="208" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 349px; height: 209px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Interface&gt;&gt;</i><br /><b>Whisper::Network::Protocol</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ protocolType : Whisper::Network::ProtocolType</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ receiveRaw(std::vector&lt;std::uint8_t)<br />+ transmit(Whisper::Message)<br /></p><p style="margin: 0px ; margin-left: 4px">+ hasNewMessage()</p><p style="margin: 0px ; margin-left: 4px">+ waitForMessage()</p><p style="margin: 0px ; margin-left: 4px">+ getType()</p><p style="margin: 0px ; margin-left: 4px">+ getNextMessage()</p><p style="margin: 0px ; margin-left: 4px"><br /></p><p style="margin: 0px ; margin-left: 4px"><br /></p></div></foreignObject><text x="174" y="110" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="710" y="140" width="190" height="170" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(710.5,140.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="188" height="168" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 189px; height: 169px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Enumeration&gt;&gt;</i><br /><b>Whisper::Capabilities</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">Announcement (required)</p><p style="margin: 0px ; margin-left: 4px">ProtocolUDP01</p><p style="margin: 0px ; margin-left: 4px">ProtocolUDPBroadcast01</p><p style="margin: 0px ; margin-left: 4px">ProtocolTCP01</p><p style="margin: 0px ; margin-left: 4px">ProtocolWebsocket01</p><p style="margin: 0px ; margin-left: 4px">EncodingJSON</p><p style="margin: 0px ; margin-left: 4px">EncodingRAW</p><p style="margin: 0px ; margin-left: 4px">EncodingXML</p><p style="margin: 0px ; margin-left: 4px"><br /></p></div></foreignObject><text x="94" y="90" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 805 140 L 503.52 49.08" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 491.07 45.32 L 505.39 42.85 L 501.64 55.3 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="720" y="370" width="200" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(720.5,370.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="198" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 199px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Participant</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ topics : std::list&lt;Whisper::Topic&gt;</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Type</p></div></foreignObject><text x="99" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 805 325.99 L 805 332.99 Q 805 340 812.5 340 L 816.25 340 Q 820 340 820 350 L 820 367.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 805 310.99 L 809.41 318.49 L 805 325.99 L 800.59 318.49 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 813.5 355.88 L 820 368.88 L 826.5 355.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(809.5,295.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">1</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">1</text></switch></g><path d="M 935.99 415 L 960 415 Q 970 415 970 405 L 970 223 Q 970 213 980 213 L 1047.76 213" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 920.99 415 L 928.49 410.59 L 935.99 415 L 928.49 419.41 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1035.88 219.5 L 1048.88 213 L 1035.88 206.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(891.5,356.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">n</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">n</text></switch></g><path d="M 704.01 393 L 563 393 Q 553 393 553 403 L 553 473 Q 553 483 543 483 L 502.24 483" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 719.01 393 L 711.51 397.41 L 704.01 393 L 711.51 388.59 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514.12 476.5 L 501.12 483 L 514.12 489.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(701.5,378.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">1</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">1</text></switch></g><rect x="1390" y="440" width="290" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(1390.5,440.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="288" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 289px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Network::Protocols::Announcement</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Type</p></div></foreignObject><text x="144" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="1700" y="440" width="290" height="90" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(1700.5,440.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="288" height="88" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 289px; height: 89px; overflow: hidden; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Whisper::Network::Protocols::UDPBroadcast01</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ method(): Ty</p></div></foreignObject><text x="144" y="50" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1535 440 L 1528.58 284.11" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1528.05 271.12 L 1535.08 283.84 L 1522.09 284.37 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1845 440 L 1626.35 278.39" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1615.9 270.66 L 1630.22 273.16 L 1622.49 283.62 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1463 424.01 L 1463 340 Q 1463 330 1453 330 L 1390 330 Q 1380 330 1380 320 L 1380 253 Q 1380 243 1370 243 L 1216.24 243" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1463 439.01 L 1458.59 431.51 L 1463 424.01 L 1467.41 431.51 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1228.12 236.5 L 1215.12 243 L 1228.12 249.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1447.5,415.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">1</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">1</text></switch></g><path d="M 1805.99 165 L 1900 165 Q 1910 165 1910 155 L 1910 150 Q 1910 145 1920 145 L 1997.76 145" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1790.99 165 L 1798.49 160.59 L 1805.99 165 L 1798.49 169.41 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1985.88 151.5 L 1998.88 145 L 1985.88 138.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1811.5,130.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="6" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">n</div></div></foreignObject><text x="3" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">n</text></switch></g></g></svg>