diff options
author | Eddy Pedroni <epedroni@pm.me> | 2025-07-21 18:57:53 +0200 |
---|---|---|
committer | Eddy Pedroni <epedroni@pm.me> | 2025-07-21 18:57:53 +0200 |
commit | f0835be9ffcae8e5c74c8fc6a0da2f7bc49343ac (patch) | |
tree | fb7a6f34e9068b48b67c039e7fcead23e361da75 /doc/architecture.drawio |
Initial commit, daemon hello world
Diffstat (limited to 'doc/architecture.drawio')
-rw-r--r-- | doc/architecture.drawio | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/doc/architecture.drawio b/doc/architecture.drawio new file mode 100644 index 0000000..da8d093 --- /dev/null +++ b/doc/architecture.drawio @@ -0,0 +1,255 @@ +<mxfile host="Electron" modified="2025-07-21T16:24:00.333Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.2 Chrome/114.0.5735.289 Electron/25.9.4 Safari/537.36" etag="_IwkXMvgGTjRfqPQ7Xbc" version="22.1.2" type="device" pages="2"> + <diagram name="Page-1" id="X3IhXaZUrfH3xSkZTgMi"> + <mxGraphModel dx="1561" dy="962" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-25" value="Router daemon" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="690" y="40" width="280" height="290" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-26" target="QjxI3e8E4HzF-40xZ6KW-34" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-26" value="RtMidi" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="1" vertex="1"> + <mxGeometry x="920" y="130" width="50" height="110" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-27" target="QjxI3e8E4HzF-40xZ6KW-26" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-27" value="Deluge" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="1020" y="130" width="80" height="40" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-28" target="QjxI3e8E4HzF-40xZ6KW-26" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-28" value="Akai MPK" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="1020" y="200" width="80" height="40" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-27" target="QjxI3e8E4HzF-40xZ6KW-27" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-34" value="Routing logic" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="810" y="155" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-38" value="Python GUI front-end" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="270" y="60" width="340" height="130" as="geometry" /> + </mxCell> + <mxCell id="sy53--710sh8kRDpFuUL-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-42" target="QjxI3e8E4HzF-40xZ6KW-44" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-42" value="Protobuf" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="1" vertex="1"> + <mxGeometry x="690" y="247.5" width="50" height="50" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-44" target="QjxI3e8E4HzF-40xZ6KW-34" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-44" value="Compiled mapping<br>(double buffered)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> + <mxGeometry x="714" y="155" width="70" height="60" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-52" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-47" target="QjxI3e8E4HzF-40xZ6KW-42" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="670" y="125" /> + <mxPoint x="670" y="273" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-47" value="Protobuf" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="1" vertex="1"> + <mxGeometry x="560" y="100" width="50" height="50" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-48" target="QjxI3e8E4HzF-40xZ6KW-34" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-48" target="QjxI3e8E4HzF-40xZ6KW-26" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="I2GwO2c-iuznto4u8GGd-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-48" target="QjxI3e8E4HzF-40xZ6KW-44" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-48" value="Connection<br>manager" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="810" y="70" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="sy53--710sh8kRDpFuUL-3" target="QjxI3e8E4HzF-40xZ6KW-47" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-68" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;startArrow=classic;startFill=1;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-53" target="QjxI3e8E4HzF-40xZ6KW-66" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-53" value="NiceGUI<br>graph interface" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="340" y="95" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-55" target="QjxI3e8E4HzF-40xZ6KW-42" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-55" value="Python config loader" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="270" y="212.5" width="340" height="120" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-56" value="Protobuf" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;" parent="1" vertex="1"> + <mxGeometry x="560" y="252.5" width="50" height="50" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-39" target="QjxI3e8E4HzF-40xZ6KW-56" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-58" value="TOML loader" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="340" y="247.5" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-63" value="Filebrowser" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="60" y="60" width="160" height="120" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-64" value="Config file<br>(TOML)" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="80" y="95" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-70" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;startArrow=classic;startFill=1;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-65" target="QjxI3e8E4HzF-40xZ6KW-64" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-71" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-65" target="QjxI3e8E4HzF-40xZ6KW-67" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="205" y="320" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-65" value="Rest API" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="190" y="107.5" width="30" height="35" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-69" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;startArrow=classic;startFill=1;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-66" target="QjxI3e8E4HzF-40xZ6KW-65" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-66" value="Rest API" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="270" y="107.5" width="30" height="35" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-67" target="QjxI3e8E4HzF-40xZ6KW-58" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-67" value="Rest API" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="270" y="260" width="30" height="35" as="geometry" /> + </mxCell> + <mxCell id="sy53--710sh8kRDpFuUL-2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-58" target="QjxI3e8E4HzF-40xZ6KW-39" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="410" y="277.5" as="sourcePoint" /> + <mxPoint x="520" y="277.5" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="QjxI3e8E4HzF-40xZ6KW-39" value="Mapping compiler" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="450" y="247.5" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="sy53--710sh8kRDpFuUL-4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="QjxI3e8E4HzF-40xZ6KW-53" target="sy53--710sh8kRDpFuUL-3" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="410" y="125" as="sourcePoint" /> + <mxPoint x="560" y="125" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="sy53--710sh8kRDpFuUL-3" value="Mapping compiler" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="450" y="95" width="80" height="60" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> + <diagram id="eDi6a6V0f_dNDtGviYes" name="Page-2"> + <mxGraphModel dx="1561" dy="946" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="WbTO22Bo2XP_zg3Y817k-28" value="Main thread" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;align=left;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="200" y="480" width="120" height="110" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-8" value="Thread" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;align=left;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="70" y="150" width="120" height="210" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-5" value="polling" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-1" target="WbTO22Bo2XP_zg3Y817k-4" edge="1"> + <mxGeometry x="-0.5" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-1" value="Deluge" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="90" y="60" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-7" value="function call" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-4" target="WbTO22Bo2XP_zg3Y817k-6" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-4" value="File descriptor" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="90" y="180" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" source="WbTO22Bo2XP_zg3Y817k-6" target="WbTO22Bo2XP_zg3Y817k-9" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-6" value="Callback" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="90" y="280" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-9" target="WbTO22Bo2XP_zg3Y817k-25" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="260" y="470" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-9" value="Blocking concurrent queue" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="220" y="400" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-11" value="Thread" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;align=left;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="200" y="150" width="120" height="210" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-12" value="polling" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-13" target="WbTO22Bo2XP_zg3Y817k-15" edge="1"> + <mxGeometry x="-0.5" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-13" value="OP-1" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="220" y="60" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-14" value="function call" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-15" target="WbTO22Bo2XP_zg3Y817k-16" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-15" value="File descriptor" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="220" y="180" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="WbTO22Bo2XP_zg3Y817k-16" target="WbTO22Bo2XP_zg3Y817k-9" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-16" value="Callback" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="220" y="280" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-17" value="Thread" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;align=left;verticalAlign=top;" parent="1" vertex="1"> + <mxGeometry x="330" y="150" width="120" height="210" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-18" value="polling" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-19" target="WbTO22Bo2XP_zg3Y817k-21" edge="1"> + <mxGeometry x="-0.5" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-19" value="MPK" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="350" y="60" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-20" value="function call" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-21" target="WbTO22Bo2XP_zg3Y817k-22" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-21" value="File descriptor" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="350" y="180" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="1" source="WbTO22Bo2XP_zg3Y817k-22" target="WbTO22Bo2XP_zg3Y817k-9" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-22" value="Callback" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="350" y="280" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" parent="1" source="WbTO22Bo2XP_zg3Y817k-25" target="WbTO22Bo2XP_zg3Y817k-29" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="WbTO22Bo2XP_zg3Y817k-25" target="WbTO22Bo2XP_zg3Y817k-30" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" parent="1" source="WbTO22Bo2XP_zg3Y817k-25" target="WbTO22Bo2XP_zg3Y817k-31" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-25" value="Router" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="220" y="510" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-29" value="Deluge" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="90" y="620" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-30" value="OP-1" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="220" y="620" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="WbTO22Bo2XP_zg3Y817k-31" value="MPK" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="350" y="620" width="80" height="60" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> |