wegen/FrOSCon26/drawings/state-engine.svg

332 lines
12 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" standalone="no"?>
<!-- Generated by graphviz version 2.42.4 (0)
-->
<!-- Title: BuffState Pages: 1 -->
<svg
width="14.58cm"
height="12.09cm"
viewBox="0 0 499.99993 414.609"
version="1.1"
id="svg15"
sodipodi:docname="state-engine.svg"
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
inkscape:export-filename="../../state-engine.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<title
id="title19">Buffer State Engine</title>
<defs
id="defs15">
<marker
style="overflow:visible"
id="DartArrow"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Dart arrow"
markerWidth="2"
markerHeight="2"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
transform="scale(-0.5)"
id="path17" />
</marker>
</defs>
<sodipodi:namedview
id="namedview15"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="pt"
inkscape:zoom="1.405605"
inkscape:cx="276.74916"
inkscape:cy="231.57288"
inkscape:window-width="1920"
inkscape:window-height="1057"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15" />
<g
id="states">
<text
text-anchor="middle"
x="249.59398"
y="25.655668"
font-family="sans-serif"
font-size="14px"
id="title"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-anchor:middle"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.7274px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
id="tspan19">Life-cycle of one buffer »slot«</tspan></text>
<g
id="n_FREE"
class="node"
transform="translate(24.658154,175.59834)">
<title
id="title2">FREE</title>
<circle
fill="#dbe9ff"
stroke="#000000"
stroke-width="1.4"
cx="32.5"
cy="-94.440002"
id="ellipse2"
r="32.5" />
<text
text-anchor="middle"
x="32.251896"
y="-89.148308"
font-family="sans-serif"
font-size="12px"
id="text2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.5176px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">FREE</text>
</g>
<g
id="n_READ"
class="node"
transform="translate(24.658154,175.59834)">
<title
id="title3">READ</title>
<circle
fill="#ffedcc"
stroke="#000000"
stroke-width="1.4"
cx="275.5"
cy="-94.440002"
id="ellipse3"
r="32.5" />
<text
text-anchor="middle"
x="275.21646"
y="-89.148308"
font-family="sans-serif"
font-size="12px"
id="text3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.5176px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">READ</text>
</g>
<g
id="trans1">
<path
fill="none"
stroke="#000000"
d="m 87.085885,80.512765 c 43.030005,0 120.260005,0 167.980005,0"
id="path4"
style="marker-end:url(#DartArrow)" />
<text
text-anchor="start"
x="106.36691"
y="70.385902"
font-family="sans-serif"
font-size="10px"
id="text4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"> submit read</text>
</g>
<g
id="n_FEED"
class="node"
transform="translate(-67.657974,376.80046)">
<title
id="title5">FEED</title>
<circle
fill="#d8f0d8"
stroke="#000000"
stroke-width="1.4"
cx="503.5"
cy="-146.44"
id="ellipse5"
r="32.5" />
<text
text-anchor="middle"
x="503.21646"
y="-141.14832"
font-family="sans-serif"
font-size="12px"
id="text6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.5176px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">FEED</text>
</g>
<g
id="trans2">
<path
fill="none"
stroke="#000000"
d="m 319.19681,114.06351 83.22759,78.77542"
id="path6"
style="marker-end:url(#DartArrow)"
sodipodi:nodetypes="cc" />
<text
text-anchor="start"
x="349.29718"
y="130.00645"
font-family="sans-serif"
font-size="10px"
id="text7"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"> read completed OK</text>
</g>
<g
id="n_STOP"
class="node"
transform="translate(-243.89786,291.80046)">
<title
id="title8">STOP</title>
<circle
fill="#ffd6d6"
stroke="#000000"
stroke-width="1.4"
cx="503.5"
cy="-61.439999"
id="ellipse8"
r="30.5" />
<circle
fill="none"
stroke="#000000"
stroke-width="1.4"
cx="503.5"
cy="-61.439999"
id="ellipse9"
r="34.5" />
<text
text-anchor="middle"
x="503.26962"
y="-56.155396"
font-family="sans-serif"
font-size="12px"
id="text9"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.5176px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">STOP</text>
</g>
<g
id="trans2b">
<path
fill="none"
stroke="#a00000"
d="m 291.90741,119.31784 -16.7975,65.95858"
id="path9"
style="marker-end:url(#DartArrow)"
sodipodi:nodetypes="cc" />
<text
text-anchor="middle"
x="229.81686"
y="130.70351"
font-family="sans-serif"
font-size="10px"
fill="#a00000"
id="text10"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"> short read / EOF  </text>
</g>
<g
id="n_SHOW"
class="node"
transform="translate(-391.73278,519.04016)">
<title
id="title10">SHOW</title>
<circle
fill="#e7d8ff"
stroke="#000000"
stroke-width="1.4"
cx="721.5"
cy="-146.44"
id="ellipse10"
r="32.5" />
<text
text-anchor="middle"
x="721.25897"
y="-141.1554"
font-family="sans-serif"
font-size="12px"
id="text11"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.5176px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">SHOW</text>
</g>
<g
id="trans3">
<path
fill="none"
stroke="#000000"
d="m 415.77635,262.20872 -54.50862,73.59436"
id="path11"
style="marker-end:url(#DartArrow)"
sodipodi:nodetypes="cc" />
<text
text-anchor="start"
x="392.15256"
y="311.47485"
font-family="sans-serif"
font-size="10px"
id="text12"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"> publish frame</text>
</g>
<g
id="trans4">
<path
fill="none"
stroke="#5a2ca0"
d="M 289.50247,374.18644 C 66.708689,375.12887 57.253166,296.77982 56.31298,127.42887"
id="path13"
style="marker-end:url(#DartArrow)"
sodipodi:nodetypes="cc" />
<text
text-anchor="start"
x="93.769241"
y="367.90442"
font-family="sans-serif"
font-size="10px"
fill="#5a2ca0"
id="text14"
style="font-size:10px;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#5a2ca0"><tspan
sodipodi:role="line"
id="tspan17"
x="93.769241"
y="367.90442"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">GUI released frame</tspan><tspan
sodipodi:role="line"
id="tspan18"
x="93.769241"
y="383.02692"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"> (toDisplay_ == nullptr)</tspan></text>
</g>
</g>
<metadata
id="metadata19">
<rdf:RDF>
<cc:Work
rdf:about="">
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
<dc:title>Buffer State Engine</dc:title>
<dc:description>State transitions applied for each buffer slot</dc:description>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
</svg>