Documentation and some other stuff.
This commit is contained in:
516
scrbl/rktwebview-shared-memory-diagram-simple.svg
Normal file
516
scrbl/rktwebview-shared-memory-diagram-simple.svg
Normal file
@@ -0,0 +1,516 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="1400"
|
||||
height="820"
|
||||
viewBox="0 0 1400 820"
|
||||
version="1.1"
|
||||
id="svg34"
|
||||
sodipodi:docname="rktwebview-shared-memory-diagram-simple.svg"
|
||||
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
|
||||
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">
|
||||
<defs
|
||||
id="defs34">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker49"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="1"
|
||||
markerHeight="1"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path49" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker48"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="1"
|
||||
markerHeight="1"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path48" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker45"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="1"
|
||||
markerHeight="1"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path45" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Triangle"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="1"
|
||||
markerHeight="1"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path135" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker40"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="1"
|
||||
markerHeight="1"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path40" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker38"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="1"
|
||||
markerHeight="1"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path38" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview34"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="0.78374771"
|
||||
inkscape:cx="729.82669"
|
||||
inkscape:cy="468.90089"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1129"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg34" />
|
||||
<rect
|
||||
x="0"
|
||||
y="0"
|
||||
width="1400"
|
||||
height="820"
|
||||
fill="#ffffff"
|
||||
id="rect1" />
|
||||
<!-- Title -->
|
||||
<rect
|
||||
x="292.14935"
|
||||
y="50.869148"
|
||||
width="807.46985"
|
||||
height="69.175186"
|
||||
fill="#4b7fda"
|
||||
stroke="#000000"
|
||||
stroke-width="2.82481"
|
||||
id="rect2"
|
||||
ry="14.206594"
|
||||
rx="26.788099" />
|
||||
<text
|
||||
x="693.3324"
|
||||
y="95.456741"
|
||||
font-family="Arial"
|
||||
font-size="30px"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
fill="#ffffff"
|
||||
id="text2">Shared Memory</text>
|
||||
<!-- Shared memory block -->
|
||||
<rect
|
||||
x="298.4361"
|
||||
y="138.76608"
|
||||
width="800"
|
||||
height="600"
|
||||
fill="#efefef"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect3" />
|
||||
<!-- Allocator -->
|
||||
<g
|
||||
id="g36"
|
||||
transform="translate(-1.5639013,-1.2339131)">
|
||||
<g
|
||||
id="g34"
|
||||
transform="translate(-24.328594,-25.434439)">
|
||||
<rect
|
||||
x="350"
|
||||
y="185"
|
||||
width="240"
|
||||
height="60"
|
||||
fill="#d8d8d8"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect4"
|
||||
ry="11.058452"
|
||||
rx="12.164297" />
|
||||
</g>
|
||||
<text
|
||||
x="445.67142"
|
||||
y="197.56557"
|
||||
font-family="Arial"
|
||||
font-size="24px"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
id="text4">Allocator</text>
|
||||
</g>
|
||||
<text
|
||||
x="311.94321"
|
||||
y="237.80243"
|
||||
font-family="Arial"
|
||||
font-size="16px"
|
||||
id="text5">free list, slot table, allocation headers</text>
|
||||
<!-- Queues -->
|
||||
<rect
|
||||
x="633.4361"
|
||||
y="183.76608"
|
||||
width="395"
|
||||
height="54"
|
||||
fill="#f0bc23"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect5" />
|
||||
<rect
|
||||
x="633.4361"
|
||||
y="237.76608"
|
||||
width="395"
|
||||
height="50"
|
||||
fill="#fbf6df"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect6" />
|
||||
<text
|
||||
x="830.4361"
|
||||
y="218.76608"
|
||||
font-family="Arial"
|
||||
font-size="24px"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
id="text6">Command Queue</text>
|
||||
<text
|
||||
x="830.4361"
|
||||
y="269.76608"
|
||||
font-family="Arial"
|
||||
font-size="18px"
|
||||
text-anchor="middle"
|
||||
id="text7">command payloads</text>
|
||||
<rect
|
||||
x="633.4361"
|
||||
y="348.76608"
|
||||
width="395"
|
||||
height="54"
|
||||
fill="#71b53b"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect7" />
|
||||
<rect
|
||||
x="633.4361"
|
||||
y="402.76608"
|
||||
width="395"
|
||||
height="50"
|
||||
fill="#edf5e0"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect8" />
|
||||
<text
|
||||
x="830.4361"
|
||||
y="383.76608"
|
||||
font-family="Arial"
|
||||
font-size="24px"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
fill="#ffffff"
|
||||
id="text8">Result Queue</text>
|
||||
<text
|
||||
x="830.4361"
|
||||
y="434.76608"
|
||||
font-family="Arial"
|
||||
font-size="18px"
|
||||
text-anchor="middle"
|
||||
id="text9">result payloads</text>
|
||||
<rect
|
||||
x="633.4361"
|
||||
y="513.76611"
|
||||
width="395"
|
||||
height="54"
|
||||
fill="#e56a0b"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect9" />
|
||||
<rect
|
||||
x="633.4361"
|
||||
y="567.76611"
|
||||
width="395"
|
||||
height="50"
|
||||
fill="#fae9dd"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect10" />
|
||||
<text
|
||||
x="830.4361"
|
||||
y="548.76611"
|
||||
font-family="Arial"
|
||||
font-size="24px"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
fill="#ffffff"
|
||||
id="text10">Event Queue</text>
|
||||
<text
|
||||
x="830.4361"
|
||||
y="599.76611"
|
||||
font-family="Arial"
|
||||
font-size="18px"
|
||||
text-anchor="middle"
|
||||
id="text11">event payloads</text>
|
||||
<!-- Payload label -->
|
||||
<text
|
||||
x="698.4361"
|
||||
y="673.76611"
|
||||
font-family="Arial"
|
||||
font-size="24px"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
fill="#555555"
|
||||
id="text12">Payloads in Shared Memory</text>
|
||||
<line
|
||||
x1="388.4361"
|
||||
y1="686.76611"
|
||||
x2="1008.4361"
|
||||
y2="686.76611"
|
||||
stroke="#888888"
|
||||
stroke-width="2"
|
||||
id="line12" />
|
||||
<!-- Left process -->
|
||||
<rect
|
||||
x="43.653984"
|
||||
y="361.71698"
|
||||
width="274.56424"
|
||||
height="326.83121"
|
||||
fill="#ffffff"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect12" />
|
||||
<g
|
||||
id="g37"
|
||||
transform="translate(-1.7755917,-110.71258)">
|
||||
<rect
|
||||
x="45"
|
||||
y="470"
|
||||
width="275"
|
||||
height="90"
|
||||
fill="#e26a10"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect13" />
|
||||
<text
|
||||
x="182"
|
||||
y="525"
|
||||
font-family="Arial"
|
||||
font-size="28px"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
fill="#ffffff"
|
||||
id="text13">Racket Process</text>
|
||||
</g>
|
||||
<text
|
||||
x="101.61144"
|
||||
y="514.19263"
|
||||
font-family="Arial"
|
||||
font-size="22px"
|
||||
font-weight="bold"
|
||||
id="text14">• Call API (FFI)</text>
|
||||
<text
|
||||
x="117.09328"
|
||||
y="543.13422"
|
||||
font-family="Arial"
|
||||
font-size="22px"
|
||||
font-weight="bold"
|
||||
id="text15">• Receive Result</text>
|
||||
<text
|
||||
x="96.082222"
|
||||
y="589.76929"
|
||||
font-family="Arial"
|
||||
font-size="22px"
|
||||
font-weight="bold"
|
||||
id="text16">• Poll Events</text>
|
||||
<!-- Right process -->
|
||||
<g
|
||||
id="g44"
|
||||
transform="translate(15.023069,-161.99993)">
|
||||
<rect
|
||||
x="1120"
|
||||
y="460"
|
||||
width="245"
|
||||
height="240"
|
||||
fill="#f7f7f8"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect16" />
|
||||
<rect
|
||||
x="1120"
|
||||
y="460"
|
||||
width="245"
|
||||
height="105"
|
||||
fill="#676e7a"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect17" />
|
||||
<text
|
||||
x="1242"
|
||||
y="515"
|
||||
font-family="Arial"
|
||||
font-size="24px"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
fill="#ffffff"
|
||||
id="text17">rktwebview_prg</text>
|
||||
<text
|
||||
x="1242"
|
||||
y="548"
|
||||
font-family="Arial"
|
||||
font-size="18px"
|
||||
text-anchor="middle"
|
||||
fill="#ffffff"
|
||||
id="text18">(Qt / Chromium)</text>
|
||||
<g
|
||||
id="g41"
|
||||
transform="translate(0,-11.058452)">
|
||||
<rect
|
||||
x="1152"
|
||||
y="590"
|
||||
width="180"
|
||||
height="48"
|
||||
fill="#efdf9b"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect18" />
|
||||
<text
|
||||
x="1242"
|
||||
y="621"
|
||||
font-family="Arial"
|
||||
font-size="20px"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
id="text19">Command Thread</text>
|
||||
</g>
|
||||
<g
|
||||
id="g42">
|
||||
<g
|
||||
id="g43"
|
||||
transform="translate(0,-10.947309)">
|
||||
<rect
|
||||
x="1152"
|
||||
y="650"
|
||||
width="180"
|
||||
height="48"
|
||||
fill="#efdf9b"
|
||||
stroke="#000000"
|
||||
stroke-width="2"
|
||||
id="rect19" />
|
||||
<text
|
||||
x="1242"
|
||||
y="681"
|
||||
font-family="Arial"
|
||||
font-size="20px"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
id="text20">Qt GUI Thread</text>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Command arrows -->
|
||||
<!-- Result arrows right to left -->
|
||||
<!-- Event arrows right to left -->
|
||||
<!-- Footer -->
|
||||
<text
|
||||
x="698.4361"
|
||||
y="783.76611"
|
||||
font-family="Arial"
|
||||
font-size="16px"
|
||||
text-anchor="middle"
|
||||
fill="#555555"
|
||||
id="text34">Racket calls the C API through FFI; the helper process consumes commands and produces results and events.</text>
|
||||
<path
|
||||
style="fill:#000000;stroke:#000000;stroke-width:4.2;stroke-dasharray:none;marker-end:url(#marker38)"
|
||||
d="m 638.72046,571.59389 -321.80095,1.10585"
|
||||
id="path37"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.1534;stroke-dasharray:none;marker-end:url(#marker40)"
|
||||
d="m 635.3126,404.52149 -55.08407,1.10725 -2.16016,128.43983 -260.29922,2.21448"
|
||||
id="path39" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.2;stroke-dasharray:none;marker-end:url(#Triangle)"
|
||||
d="M 306.96691,505.24318 H 543.61777 V 261.95724 h 87.36177"
|
||||
id="path41" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.89804;stroke-dasharray:none;marker-end:url(#marker45)"
|
||||
d="m 1165.3148,499.58917 h -86.7061 v 77.63074 h -36.8501"
|
||||
id="path44" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.9801;stroke-dasharray:none;marker-end:url(#marker49)"
|
||||
d="m 1030.6475,241.07822 h 31.4718 v 189.62297 h 95.6253"
|
||||
id="path46" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.2;stroke-dasharray:none;marker-end:url(#marker48)"
|
||||
d="m 1162.0759,452.99389 h -112.2811 v -53.58867 l -18.8137,5.04111"
|
||||
id="path47" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
Reference in New Issue
Block a user