summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2023-06-16 23:17:50 +0200
committerxengineering <me@xengineering.eu>2023-06-16 23:31:44 +0200
commit15814663bd6fb4a501afd49dab2e0176d03ad2b9 (patch)
treea7b63021eded6c995b4458dbd976e0be8ca4e1b2 /doc
parentae8d61bee60a29e2bbfc9cfbb400d8451d00de11 (diff)
downloadlimox-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.svg300
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">&lt;/stream&gt;</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>