diff options
author | xengineering <me@xengineering.eu> | 2023-06-16 23:17:50 +0200 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2023-06-16 23:31:44 +0200 |
commit | 15814663bd6fb4a501afd49dab2e0176d03ad2b9 (patch) | |
tree | a7b63021eded6c995b4458dbd976e0be8ca4e1b2 /doc | |
parent | ae8d61bee60a29e2bbfc9cfbb400d8451d00de11 (diff) | |
download | limox-15814663bd6fb4a501afd49dab2e0176d03ad2b9.tar limox-15814663bd6fb4a501afd49dab2e0176d03ad2b9.tar.zst limox-15814663bd6fb4a501afd49dab2e0176d03ad2b9.zip |
Add statemachine diagram for xmpp.session
This models the different states of an xmpp.session and helps to
implement it correctly.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/session.svg | 300 |
1 files changed, 300 insertions, 0 deletions
diff --git a/doc/session.svg b/doc/session.svg new file mode 100644 index 0000000..0d628b6 --- /dev/null +++ b/doc/session.svg @@ -0,0 +1,300 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="150mm" + height="75mm" + viewBox="0 0 150 75" + version="1.1" + id="svg5" + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="session.svg" + 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"> + <sodipodi:namedview + id="namedview7" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="true" + inkscape:zoom="2.1213203" + inkscape:cx="301.22749" + inkscape:cy="134.58599" + inkscape:window-width="1916" + inkscape:window-height="1028" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="layer3"> + <inkscape:grid + type="xygrid" + id="grid9" + units="mm" + spacingx="0.5" + spacingy="0.5" + dotted="true" + visible="false" /> + </sodipodi:namedview> + <defs + id="defs2"> + <marker + style="overflow:visible" + id="Arrow2" + refX="6" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Arrow2" + markerWidth="7.6999998" + markerHeight="5.5999999" + viewBox="0 0 7.7 5.6" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.7)" + d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:none" + id="arrow2L" /> + </marker> + <rect + x="94.488188" + y="56.692913" + width="56.692913" + height="37.795275" + id="rect1320" /> + </defs> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="background" + style="display:inline"> + <rect + style="fill:none;stroke:#000000;stroke-width:0.311831;stroke-miterlimit:0;stroke-dasharray:none" + id="rect1528" + width="147.68817" + height="72.688171" + x="1.1559155" + y="1.1559155" + ry="0" + inkscape:label="rect1528" /> + <text + xml:space="preserve" + style="font-size:3.52777px;line-height:1.35;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';display:inline;stroke-width:0.264583" + x="2.8221822" + y="4.983366" + id="text3590"><tspan + sodipodi:role="line" + id="tspan3592" + x="2.8221822" + y="4.983366">xmpp.session «statemachine»</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 54.112505,0.99999997 V 5 L 52.112507,6.9999999 H 12.112501 0.99999999" + id="path3659" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="foreground" + style="display:inline"> + <text + xml:space="preserve" + style="font-size:25.4px;line-height:1.35;font-family:sans-serif;stroke-width:0.264583" + x="33" + y="20" + id="text1316"><tspan + sodipodi:role="line" + id="tspan1314" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583" + x="33" + y="20" /></text> + <circle + style="fill:#000000;stroke:none;stroke-width:0;stroke-miterlimit:0;stroke-dasharray:none" + id="path1386" + cx="30" + cy="23" + r="2.5" /> + <g + id="g5319" + transform="translate(69.999999,0.49999947)"> + <circle + style="display:inline;fill:#000000;stroke:none;stroke-width:0;stroke-miterlimit:0;stroke-dasharray:none" + id="path1386-8" + cx="55" + cy="52.5" + r="2" /> + <circle + style="display:inline;fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" + id="path1386-8-9" + cx="55" + cy="52.5" + r="2.5" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;line-height:1.35;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583" + x="35.699741" + y="21.079975" + id="text6534"><tspan + sodipodi:role="line" + id="tspan6536" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal" + x="35.699741" + y="21.079975">xmpp.StartSession()</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;line-height:1.35;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="79.903679" + y="31.293501" + id="text6534-6"><tspan + sodipodi:role="line" + id="tspan6536-1" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal" + x="79.903679" + y="31.293501">session.startTransport()</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;line-height:1.35;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="96.286446" + y="22.070099" + id="text6534-6-4"><tspan + sodipodi:role="line" + id="tspan6536-1-7" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal" + x="96.286446" + y="22.070099">error</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;line-height:1.35;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="37.344776" + y="43.20322" + id="text6534-6-4-6-7"><tspan + sodipodi:role="line" + id="tspan6536-1-7-5-4" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal" + x="37.344776" + y="43.20322">disconnect</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;line-height:1.35;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="99.215378" + y="51.942612" + id="text6534-6-4-6-6"><tspan + sodipodi:role="line" + id="tspan6536-1-7-5-9" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal" + x="99.215378" + y="51.942612"></stream></tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;line-height:1.35;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="79.903679" + y="46.441666" + id="text6534-6-5"><tspan + sodipodi:role="line" + id="tspan6536-1-5" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal" + x="79.903679" + y="46.441666">session.openStream()</tspan></text> + <g + id="g17237" + transform="translate(4.9999993)"> + <text + xml:space="preserve" + style="font-size:3.52777px;line-height:1.35;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';stroke-width:0.264583" + x="61.57803" + y="53.739067" + id="text16401"><tspan + sodipodi:role="line" + id="tspan16399" + style="stroke-width:0.264583" + x="61.57803" + y="53.739067">xmpp.stream</tspan></text> + <rect + style="fill:none;stroke:#000000;stroke-width:0.3;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" + id="rect17129" + width="25" + height="6" + x="60" + y="50" + ry="0.99665809" /> + </g> + <g + id="g17242" + transform="translate(4.8791726,-5.1249851)"> + <text + xml:space="preserve" + style="font-size:3.52777px;line-height:1.35;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';stroke-width:0.264583" + x="64.021896" + y="44.447899" + id="text16397"><tspan + sodipodi:role="line" + id="tspan16395" + style="stroke-width:0.264583" + x="64.021896" + y="44.447899">connected</tspan></text> + <rect + style="display:inline;fill:none;stroke:#000000;stroke-width:0.3;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" + id="rect17129-2" + width="25" + height="6" + x="60.120827" + y="40.124985" + ry="0.99665809" /> + </g> + <g + id="g17232" + transform="translate(4.8208383,-10.245812)"> + <text + xml:space="preserve" + style="font-size:3.52777px;line-height:1.35;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';stroke-width:0.264583" + x="69.641754" + y="34.568726" + id="text16393"><tspan + sodipodi:role="line" + id="tspan16391" + style="stroke-width:0.264583" + x="69.641754" + y="34.568726">idle</tspan></text> + <rect + style="display:inline;fill:none;stroke:#000000;stroke-width:0.3;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" + id="rect17129-2-0" + width="25" + height="6" + x="60.179161" + y="30.245811" + ry="0.99665809" /> + </g> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2)" + d="m 31.999999,22.999999 h 33" + id="path17275" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2)" + d="m 77.5,26 v 8.999998" + id="path18745" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2)" + d="m 77.5,41 v 9" + id="path18765" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2)" + d="M 89.999999,52.999999 H 122.5" + id="path18785" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2)" + d="M 89.999999,23 H 125 v 27.499999" + id="path18852" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2)" + d="M 64.999999,52.999999 H 52.5 V 34.999998 L 65.5,25.5" + id="path23542" /> + </g> +</svg> |