hermitcollective-nix-server/sites/sara.objectionable.solutions/assets/you-done-it-networking-UML.svg

2 lines
No EOL
11 KiB
XML

<?plantuml 1.2026.2beta3?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="CLASS" height="346px" preserveAspectRatio="none" style="width:2266px;height:346px;background:#1B1B1B;" version="1.1" viewBox="0 0 2266 346" width="2266px" zoomAndPan="magnify"><defs/><g><rect fill="#1B1B1B" height="346" style="stroke:none;stroke-width:1;" width="2266" x="0" y="0"/><g class="entity" data-qualified-name="ydi..client" data-source-line="1" id="ent0002"><rect fill="#313139" height="109.7813" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="445.4805" x="439.89" y="221.63"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="68.9473" x="628.1566" y="236.6251">ydi::client</text><line style="stroke:#E7E7E7;stroke-width:0.5;" x1="440.89" x2="884.3705" y1="241.9269" y2="241.9269"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="218.8457" x="445.89" y="258.922">void connect(String const &amp;url)</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120.8799" x="445.89" y="275.2189">void disconnect()</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="283.5342" x="445.89" y="291.5157">NetworkData::ConnectionStatus status()</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="433.4805" x="445.89" y="307.8126">FixedVector&lt;NetworkData::ClueID, 3&gt; &amp;receive::conclusion()</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="332.5137" x="445.89" y="324.1095">void send::reveal_clue(NetworkData::ClueID id)</text></g><g class="entity" data-qualified-name="ydi..server" data-source-line="8" id="ent0003"><rect fill="#313139" height="126.0781" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="816.0361" x="1008.61" y="213.48"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="74.8125" x="1379.2218" y="228.4751">ydi::server</text><line style="stroke:#E7E7E7;stroke-width:0.5;" x1="1009.61" x2="1823.6461" y1="233.7769" y2="233.7769"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.9365" x="1014.61" y="250.772">bool open();</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85.7773" x="1014.61" y="267.0689">void close();</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120.1963" x="1014.61" y="283.3657">bool has_client();</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="122.2061" x="1014.61" y="299.6626">bool is_running();</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="433.3164" x="1014.61" y="315.9595">bool receive::new_clues(Vector&lt;NetworkData::ClueID&gt; &amp;out)</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="804.0361" x="1014.61" y="332.2564">void send::conclusion(NetworkData::ClueID method, NetworkData::ClueID motive, NetworkData::ClueID murderer)</text></g><g class="entity" data-qualified-name="GMN4" data-source-line="17" id="ent0005"><path d="M6,263.95 L6,289.0828 A0,0 0 0 0 6,289.0828 L405.2505,289.0828 A0,0 0 0 0 405.2505,289.0828 L405.2505,281.95 L439.45,276.52 L405.2505,273.95 L405.2505,273.95 L395.2505,263.95 L6,263.95 A0,0 0 0 0 6,263.95" fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><path d="M395.2505,263.95 L395.2505,273.95 L405.2505,273.95 L395.2505,263.95" fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="378.2505" x="12" y="281.0169">A namespaced C-style API abstraction layer over zmq.hpp</text></g><g class="entity" data-qualified-name="GMN7" data-source-line="18" id="ent0008"><path d="M1860,263.95 L1860,272.52 L1825.09,276.52 L1860,280.52 L1860,289.0828 A0,0 0 0 0 1860,289.0828 L2259.2505,289.0828 A0,0 0 0 0 2259.2505,289.0828 L2259.2505,273.95 L2249.2505,263.95 L1860,263.95 A0,0 0 0 0 1860,263.95" fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><path d="M2249.2505,263.95 L2249.2505,273.95 L2259.2505,273.95 L2249.2505,263.95" fill="#714137" style="stroke:#E7E7E7;stroke-width:0.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="378.2505" x="1866" y="281.0169">A namespaced C-style API abstraction layer over zmq.hpp</text></g><!--class ClientNode--><g class="entity" data-qualified-name="ClientNode" data-source-line="20" id="ent0010"><rect fill="#313139" height="113.1875" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="618.9561" x="353.15" y="15.15"/><ellipse cx="619.8438" cy="31.15" fill="#2E5233" rx="11" ry="11" style="stroke:#E7E7E7;stroke-width:1;"/><path d="M622.8126,36.7906 Q622.2345,37.0875 621.5938,37.2281 Q620.9532,37.3844 620.2501,37.3844 Q617.7501,37.3844 616.422,35.7437 Q615.1095,34.0875 615.1095,30.9625 Q615.1095,27.8375 616.422,26.1812 Q617.7501,24.525 620.2501,24.525 Q620.9532,24.525 621.5938,24.6812 Q622.2501,24.8375 622.8126,25.1344 L622.8126,27.8531 Q622.1876,27.275 621.5938,27.0094 Q621.0001,26.7281 620.3751,26.7281 Q619.0313,26.7281 618.3438,27.8062 Q617.6563,28.8687 617.6563,30.9625 Q617.6563,33.0562 618.3438,34.1344 Q619.0313,35.1969 620.3751,35.1969 Q621.0001,35.1969 621.5938,34.9312 Q622.1876,34.65 622.8126,34.0719 L622.8126,36.7906 Z " fill="#FFFFFF"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="77.0684" x="640.3438" y="35.9967">ClientNode</text><line style="stroke:#E7E7E7;stroke-width:0.5;" x1="354.15" x2="971.1061" y1="47.15" y2="47.15"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="350.7383" x="359.15" y="64.1451">FixedVector&lt;NetworkData::ClueID, 3&gt; conclusion</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="606.9561" x="359.15" y="80.442">NetworkData::ConnectionStatus state{ NetworkData::CONNECTION_DISCONNECTED }</text><line style="stroke:#E7E7E7;stroke-width:0.5;" x1="354.15" x2="971.1061" y1="87.7437" y2="87.7437"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="236.6943" x="359.15" y="104.7389">static ClientNode *get_singleton()</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="291.2178" x="359.15" y="121.0357">void connect_to_server(String const &amp;url)</text></g><!--class ServerNode--><g class="entity" data-qualified-name="ServerNode" data-source-line="30" id="ent0012"><rect fill="#313139" height="129.4844" rx="2.5" ry="2.5" style="stroke:#E7E7E7;stroke-width:0.5;" width="818.3193" x="1007.47" y="7"/><ellipse cx="1371.1555" cy="23" fill="#2E5233" rx="11" ry="11" style="stroke:#E7E7E7;stroke-width:1;"/><path d="M1374.1243,28.6406 Q1373.5462,28.9375 1372.9055,29.0781 Q1372.2649,29.2344 1371.5618,29.2344 Q1369.0618,29.2344 1367.7337,27.5938 Q1366.4212,25.9375 1366.4212,22.8125 Q1366.4212,19.6875 1367.7337,18.0313 Q1369.0618,16.375 1371.5618,16.375 Q1372.2649,16.375 1372.9055,16.5313 Q1373.5618,16.6875 1374.1243,16.9844 L1374.1243,19.7031 Q1373.4993,19.125 1372.9055,18.8594 Q1372.3118,18.5781 1371.6868,18.5781 Q1370.343,18.5781 1369.6555,19.6563 Q1368.968,20.7188 1368.968,22.8125 Q1368.968,24.9063 1369.6555,25.9844 Q1370.343,27.0469 1371.6868,27.0469 Q1372.3118,27.0469 1372.9055,26.7813 Q1373.4993,26.5 1374.1243,25.9219 L1374.1243,28.6406 Z " fill="#FFFFFF"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="82.4482" x="1391.6555" y="27.8467">ServerNode</text><line style="stroke:#E7E7E7;stroke-width:0.5;" x1="1008.47" x2="1824.7893" y1="39" y2="39"/><line style="stroke:#E7E7E7;stroke-width:0.5;" x1="1008.47" x2="1824.7893" y1="47" y2="47"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="246.791" x="1013.47" y="63.9951">static ServerNode *get_singleton();</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="806.3193" x="1013.47" y="80.292">void send_conclusion(NetworkData::ClueID method, NetworkData::ClueID motive, NetworkData::ClueID murderer);</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.9365" x="1013.47" y="96.5889">bool open();</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85.7773" x="1013.47" y="112.8857">void close();</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="145.4893" x="1013.47" y="129.1826">bool is_open() const;</text></g><!--link ClientNode to ydi::client--><g class="link" data-entity-1="ent0010" data-entity-2="ent0002" data-link-type="composition" data-source-line="28" id="lnk11"><path codeLine="28" d="M662.63,128.69 C662.63,157.53 662.63,180.55 662.63,209.16" fill="none" id="ClientNode-to-ydi::client" style="stroke:#E7E7E7;stroke-width:1;"/><polygon fill="#E7E7E7" points="662.63,221.16,666.63,215.16,662.63,209.16,658.63,215.16,662.63,221.16" style="stroke:#E7E7E7;stroke-width:1;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="208.0889" x="663.63" y="179.5469">Uses to receive data from client</text></g><!--link ServerNode to ydi::server--><g class="link" data-entity-1="ent0012" data-entity-2="ent0003" data-link-type="composition" data-source-line="37" id="lnk13"><path codeLine="37" d="M1416.63,136.9 C1416.63,161.27 1416.63,176.97 1416.63,201.16" fill="none" id="ServerNode-to-ydi::server" style="stroke:#E7E7E7;stroke-width:1;"/><polygon fill="#E7E7E7" points="1416.63,213.16,1420.63,207.16,1416.63,201.16,1412.63,207.16,1416.63,213.16" style="stroke:#E7E7E7;stroke-width:1;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="174.0718" x="1417.63" y="179.5469">Uses to send data to client</text></g><?plantuml-src jLDDRzim33tRluAd8YcQNdPpXW55qWAvk0EoxMee5fDeKyHCejDbHV_xQCjExI35YW4x6UIJARuFqUexbWn7RRAij0OTmtDw8AEX9ES46YtP6xUfoy1mLNaxZhWseJioJdFa9_8_vefLbirYsv1Rik8gG6W-Skp1_4BzJJ3o7uU_s0eNynluy0ckF9Pe3YZxa2jj5MJEgBqpeDDPvl60oXQ2uUZ2531wdBwar6CMq1_G2xCLaGNQeqoSjZGj1Qoh1jggK4GPJYqJ2byv9nhKhTWxhUZmgTaZZDvc9PIeuW637hDB17R8Mz8tS14ZbflVm2glqQElwJjY18jh1beFxCtW3fpQOTYh4ZNC9e6F5k7kymBKAh1NZNDWrL4KergstxkVjzlzFexqPhDzdTaA--ypqzAg463Mx9QJHZ4fgVDYodxpUeDS1F708ZTnIFePBPYAkCcbj2PfyfxSlNgI9d-FCpwVEV2Ov_UpBul7l9WlbcrrFuSNiIBj4PbChi_S-1em05ENAT0o3zQUTX2FT18j6u9d4lMQvn9DMutgn1N_Et1osU1f9SEtbNGlAUBHdgb8qzl_fCmfKvqoDOCeYnHHb3y0?></g></svg>