Convert DITLs to JSON
50
rapidjson/doc/diagram/architecture.dot
Normal file
@@ -0,0 +1,50 @@
|
||||
digraph {
|
||||
compound=true
|
||||
fontname="Inconsolata, Consolas"
|
||||
fontsize=10
|
||||
margin="0,0"
|
||||
ranksep=0.2
|
||||
nodesep=0.5
|
||||
penwidth=0.5
|
||||
colorscheme=spectral7
|
||||
|
||||
node [shape=box, fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5, style=filled, fillcolor=white]
|
||||
edge [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
|
||||
subgraph cluster1 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "SAX"
|
||||
style=filled
|
||||
fillcolor=6
|
||||
|
||||
Reader -> Writer [style=invis]
|
||||
}
|
||||
|
||||
subgraph cluster2 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "DOM"
|
||||
style=filled
|
||||
fillcolor=7
|
||||
|
||||
Value
|
||||
Document
|
||||
}
|
||||
|
||||
Handler [label="<<concept>>\nHandler"]
|
||||
|
||||
{
|
||||
edge [arrowtail=onormal, dir=back]
|
||||
Value -> Document
|
||||
Handler -> Document
|
||||
Handler -> Writer
|
||||
}
|
||||
|
||||
{
|
||||
edge [arrowhead=vee, style=dashed, constraint=false]
|
||||
Reader -> Handler [label="calls"]
|
||||
Value -> Handler [label="calls"]
|
||||
Document -> Reader [label="uses"]
|
||||
}
|
||||
}
|
BIN
rapidjson/doc/diagram/architecture.png
Normal file
After Width: | Height: | Size: 16 KiB |
65
rapidjson/doc/diagram/insituparsing.dot
Normal file
@@ -0,0 +1,65 @@
|
||||
digraph {
|
||||
compound=true
|
||||
fontname="Inconsolata, Consolas"
|
||||
fontsize=10
|
||||
margin="0,0"
|
||||
ranksep=0.2
|
||||
penwidth=0.5
|
||||
|
||||
node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal]
|
||||
|
||||
{
|
||||
node [shape=record, fontsize="8", margin="0.04", height=0.2, color=gray]
|
||||
oldjson [label="\{|\"|m|s|g|\"|:|\"|H|e|l|l|o|\\|n|W|o|r|l|d|!|\"|,|\"|\\|u|0|0|7|3|t|a|r|s|\"|:|1|0|\}", xlabel="Before Parsing"]
|
||||
//newjson [label="\{|\"|<a>m|s|g|\\0|:|\"|<b>H|e|l|l|o|\\n|W|o|r|l|d|!|\\0|\"|,|\"|<c>s|t|a|r|s|\\0|t|a|r|s|:|1|0|\}", xlabel="After Parsing"]
|
||||
newjson [shape=plaintext, label=<
|
||||
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="2"><tr>
|
||||
<td>{</td>
|
||||
<td>"</td><td port="a">m</td><td>s</td><td>g</td><td bgcolor="yellow">\\0</td>
|
||||
<td>:</td>
|
||||
<td>"</td><td port="b">H</td><td>e</td><td>l</td><td>l</td><td>o</td><td bgcolor="yellow">\\n</td><td bgcolor="yellow">W</td><td bgcolor="yellow">o</td><td bgcolor="yellow">r</td><td bgcolor="yellow">l</td><td bgcolor="yellow">d</td><td bgcolor="yellow">!</td><td bgcolor="yellow">\\0</td><td>"</td>
|
||||
<td>,</td>
|
||||
<td>"</td><td port="c" bgcolor="yellow">s</td><td bgcolor="yellow">t</td><td bgcolor="yellow">a</td><td bgcolor="yellow">r</td><td bgcolor="yellow">s</td><td bgcolor="yellow">\\0</td><td>t</td><td>a</td><td>r</td><td>s</td>
|
||||
<td>:</td>
|
||||
<td>1</td><td>0</td>
|
||||
<td>}</td>
|
||||
</tr></table>
|
||||
>, xlabel="After Parsing"]
|
||||
}
|
||||
|
||||
subgraph cluster1 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "Document by In situ Parsing"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
node [shape=Mrecord, style=filled, colorscheme=spectral7]
|
||||
|
||||
root [label="{object|}", fillcolor=3]
|
||||
|
||||
{
|
||||
msg [label="{string|<a>}", fillcolor=5]
|
||||
helloworld [label="{string|<a>}", fillcolor=5]
|
||||
stars [label="{string|<a>}", fillcolor=5]
|
||||
ten [label="{number|10}", fillcolor=6]
|
||||
}
|
||||
}
|
||||
|
||||
oldjson -> root [label=" ParseInsitu()" lhead="cluster1"]
|
||||
edge [arrowhead=vee]
|
||||
root -> { msg; stars }
|
||||
|
||||
edge [arrowhead="none"]
|
||||
msg -> helloworld
|
||||
stars -> ten
|
||||
|
||||
{
|
||||
edge [arrowhead=vee, arrowtail=dot, arrowsize=0.5, dir=both, tailclip=false]
|
||||
msg:a:c -> newjson:a
|
||||
helloworld:a:c -> newjson:b
|
||||
stars:a:c -> newjson:c
|
||||
}
|
||||
|
||||
//oldjson -> newjson [style=invis]
|
||||
}
|
BIN
rapidjson/doc/diagram/insituparsing.png
Normal file
After Width: | Height: | Size: 36 KiB |
62
rapidjson/doc/diagram/iterative-parser-states-diagram.dot
Normal file
@@ -0,0 +1,62 @@
|
||||
digraph {
|
||||
fontname="Inconsolata, Consolas"
|
||||
fontsize=10
|
||||
margin="0,0"
|
||||
penwidth=0.0
|
||||
|
||||
node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
edge [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
|
||||
node [shape = doublecircle]; Start; Finish;
|
||||
node [shape = box; style = "rounded, filled"; fillcolor=white ];
|
||||
|
||||
Start -> ArrayInitial [label=" ["];
|
||||
Start -> ObjectInitial [label=" {"];
|
||||
|
||||
subgraph clusterArray {
|
||||
margin="10,10"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
label = "Array"
|
||||
|
||||
ArrayInitial; Element; ElementDelimiter; ArrayFinish;
|
||||
}
|
||||
|
||||
subgraph clusterObject {
|
||||
margin="10,10"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
label = "Object"
|
||||
|
||||
ObjectInitial; MemberKey; KeyValueDelimiter; MemberValue; MemberDelimiter; ObjectFinish;
|
||||
}
|
||||
|
||||
ArrayInitial -> ArrayInitial [label="["];
|
||||
ArrayInitial -> ArrayFinish [label=" ]"];
|
||||
ArrayInitial -> ObjectInitial [label="{", constraint=false];
|
||||
ArrayInitial -> Element [label="string\nfalse\ntrue\nnull\nnumber"];
|
||||
|
||||
Element -> ArrayFinish [label="]"];
|
||||
Element -> ElementDelimiter [label=","];
|
||||
|
||||
ElementDelimiter -> ArrayInitial [label=" ["];
|
||||
ElementDelimiter -> ObjectInitial [label="{"];
|
||||
ElementDelimiter -> Element [label="string\nfalse\ntrue\nnull\nnumber"];
|
||||
|
||||
ObjectInitial -> ObjectFinish [label=" }"];
|
||||
ObjectInitial -> MemberKey [label=" string "];
|
||||
|
||||
MemberKey -> KeyValueDelimiter [label=":"];
|
||||
|
||||
KeyValueDelimiter -> ArrayInitial [label="["];
|
||||
KeyValueDelimiter -> ObjectInitial [label=" {"];
|
||||
KeyValueDelimiter -> MemberValue [label=" string\n false\n true\n null\n number"];
|
||||
|
||||
MemberValue -> ObjectFinish [label="}"];
|
||||
MemberValue -> MemberDelimiter [label=","];
|
||||
|
||||
MemberDelimiter -> MemberKey [label=" string "];
|
||||
|
||||
ArrayFinish -> Finish;
|
||||
ObjectFinish -> Finish;
|
||||
}
|
BIN
rapidjson/doc/diagram/iterative-parser-states-diagram.png
Normal file
After Width: | Height: | Size: 90 KiB |
47
rapidjson/doc/diagram/move1.dot
Normal file
@@ -0,0 +1,47 @@
|
||||
digraph {
|
||||
compound=true
|
||||
fontname="Inconsolata, Consolas"
|
||||
fontsize=10
|
||||
margin="0,0"
|
||||
ranksep=0.2
|
||||
penwidth=0.5
|
||||
|
||||
node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal]
|
||||
|
||||
subgraph cluster1 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "Before"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
|
||||
node [shape=Mrecord, style=filled, colorscheme=spectral7]
|
||||
|
||||
{
|
||||
rank = same
|
||||
b1 [label="{b:number|456}", fillcolor=6]
|
||||
a1 [label="{a:number|123}", fillcolor=6]
|
||||
}
|
||||
|
||||
a1 -> b1 [style="dashed", label="Move", dir=back]
|
||||
}
|
||||
|
||||
subgraph cluster2 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "After"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
|
||||
node [shape=Mrecord, style=filled, colorscheme=spectral7]
|
||||
|
||||
{
|
||||
rank = same
|
||||
b2 [label="{b:null|}", fillcolor=1]
|
||||
a2 [label="{a:number|456}", fillcolor=6]
|
||||
}
|
||||
a2 -> b2 [style=invis, dir=back]
|
||||
}
|
||||
b1 -> b2 [style=invis]
|
||||
}
|
BIN
rapidjson/doc/diagram/move1.png
Normal file
After Width: | Height: | Size: 16 KiB |
62
rapidjson/doc/diagram/move2.dot
Normal file
@@ -0,0 +1,62 @@
|
||||
digraph {
|
||||
compound=true
|
||||
fontname="Inconsolata, Consolas"
|
||||
fontsize=10
|
||||
margin="0,0"
|
||||
ranksep=0.2
|
||||
penwidth=0.5
|
||||
|
||||
node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal]
|
||||
|
||||
subgraph cluster1 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "Before Copying (Hypothetic)"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
|
||||
node [shape=Mrecord, style=filled, colorscheme=spectral7]
|
||||
|
||||
c1 [label="{contacts:array|}", fillcolor=4]
|
||||
c11 [label="{|}"]
|
||||
c12 [label="{|}"]
|
||||
c13 [shape="none", label="...", style="solid"]
|
||||
o1 [label="{o:object|}", fillcolor=3]
|
||||
ghost [label="{o:object|}", style=invis]
|
||||
|
||||
c1 -> o1 [style="dashed", label="AddMember", constraint=false]
|
||||
|
||||
edge [arrowhead=vee]
|
||||
c1 -> { c11; c12; c13 }
|
||||
o1 -> ghost [style=invis]
|
||||
}
|
||||
|
||||
subgraph cluster2 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "After Copying (Hypothetic)"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
|
||||
node [shape=Mrecord, style=filled, colorscheme=spectral7]
|
||||
|
||||
c2 [label="{contacts:array|}", fillcolor=4]
|
||||
c3 [label="{array|}", fillcolor=4]
|
||||
c21 [label="{|}"]
|
||||
c22 [label="{|}"]
|
||||
c23 [shape=none, label="...", style="solid"]
|
||||
o2 [label="{o:object|}", fillcolor=3]
|
||||
cs [label="{string|\"contacts\"}", fillcolor=5]
|
||||
c31 [label="{|}"]
|
||||
c32 [label="{|}"]
|
||||
c33 [shape="none", label="...", style="solid"]
|
||||
|
||||
edge [arrowhead=vee]
|
||||
c2 -> { c21; c22; c23 }
|
||||
o2 -> cs
|
||||
cs -> c3 [arrowhead=none]
|
||||
c3 -> { c31; c32; c33 }
|
||||
}
|
||||
ghost -> o2 [style=invis]
|
||||
}
|
BIN
rapidjson/doc/diagram/move2.png
Normal file
After Width: | Height: | Size: 40 KiB |
60
rapidjson/doc/diagram/move3.dot
Normal file
@@ -0,0 +1,60 @@
|
||||
digraph {
|
||||
compound=true
|
||||
fontname="Inconsolata, Consolas"
|
||||
fontsize=10
|
||||
margin="0,0"
|
||||
ranksep=0.2
|
||||
penwidth=0.5
|
||||
forcelabels=true
|
||||
|
||||
node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal]
|
||||
|
||||
subgraph cluster1 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "Before Moving"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
|
||||
node [shape=Mrecord, style=filled, colorscheme=spectral7]
|
||||
|
||||
c1 [label="{contacts:array|}", fillcolor=4]
|
||||
c11 [label="{|}"]
|
||||
c12 [label="{|}"]
|
||||
c13 [shape=none, label="...", style="solid"]
|
||||
o1 [label="{o:object|}", fillcolor=3]
|
||||
ghost [label="{o:object|}", style=invis]
|
||||
|
||||
c1 -> o1 [style="dashed", constraint=false, label="AddMember"]
|
||||
|
||||
edge [arrowhead=vee]
|
||||
c1 -> { c11; c12; c13 }
|
||||
o1 -> ghost [style=invis]
|
||||
}
|
||||
|
||||
subgraph cluster2 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "After Moving"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
|
||||
node [shape=Mrecord, style=filled, colorscheme=spectral7]
|
||||
|
||||
c2 [label="{contacts:null|}", fillcolor=1]
|
||||
c3 [label="{array|}", fillcolor=4]
|
||||
c21 [label="{|}"]
|
||||
c22 [label="{|}"]
|
||||
c23 [shape="none", label="...", style="solid"]
|
||||
o2 [label="{o:object|}", fillcolor=3]
|
||||
cs [label="{string|\"contacts\"}", fillcolor=5]
|
||||
c2 -> o2 [style="dashed", constraint=false, label="AddMember", style=invis]
|
||||
|
||||
edge [arrowhead=vee]
|
||||
c3 -> { c21; c22; c23 }
|
||||
o2 -> cs
|
||||
cs -> c3 [arrowhead=none]
|
||||
}
|
||||
ghost -> o2 [style=invis]
|
||||
}
|
BIN
rapidjson/doc/diagram/move3.png
Normal file
After Width: | Height: | Size: 36 KiB |
56
rapidjson/doc/diagram/normalparsing.dot
Normal file
@@ -0,0 +1,56 @@
|
||||
digraph {
|
||||
compound=true
|
||||
fontname="Inconsolata, Consolas"
|
||||
fontsize=10
|
||||
margin="0,0"
|
||||
ranksep=0.2
|
||||
penwidth=0.5
|
||||
|
||||
node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal]
|
||||
|
||||
{
|
||||
node [shape=record, fontsize="8", margin="0.04", height=0.2, color=gray]
|
||||
normaljson [label="\{|\"|m|s|g|\"|:|\"|H|e|l|l|o|\\|n|W|o|r|l|d|!|\"|,|\"|\\|u|0|0|7|3|t|a|r|s\"|:|1|0|\}"]
|
||||
|
||||
{
|
||||
rank = same
|
||||
msgstring [label="m|s|g|\\0"]
|
||||
helloworldstring [label="H|e|l|l|o|\\n|W|o|r|l|d|!|\\0"]
|
||||
starsstring [label="s|t|a|r|s\\0"]
|
||||
}
|
||||
}
|
||||
|
||||
subgraph cluster1 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "Document by Normal Parsing"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
node [shape=Mrecord, style=filled, colorscheme=spectral7]
|
||||
|
||||
root [label="{object|}", fillcolor=3]
|
||||
|
||||
{
|
||||
msg [label="{string|<a>}", fillcolor=5]
|
||||
helloworld [label="{string|<a>}", fillcolor=5]
|
||||
stars [label="{string|<a>}", fillcolor=5]
|
||||
ten [label="{number|10}", fillcolor=6]
|
||||
}
|
||||
}
|
||||
|
||||
normaljson -> root [label=" Parse()" lhead="cluster1"]
|
||||
edge [arrowhead=vee]
|
||||
root -> { msg; stars }
|
||||
|
||||
edge [arrowhead="none"]
|
||||
msg -> helloworld
|
||||
stars -> ten
|
||||
|
||||
edge [arrowhead=vee, arrowtail=dot, arrowsize=0.5, dir=both, tailclip=false]
|
||||
msg:a:c -> msgstring:w
|
||||
helloworld:a:c -> helloworldstring:w
|
||||
stars:a:c -> starsstring:w
|
||||
|
||||
msgstring -> helloworldstring -> starsstring [style=invis]
|
||||
}
|
BIN
rapidjson/doc/diagram/normalparsing.png
Normal file
After Width: | Height: | Size: 32 KiB |
54
rapidjson/doc/diagram/simpledom.dot
Normal file
@@ -0,0 +1,54 @@
|
||||
digraph {
|
||||
compound=true
|
||||
fontname="Inconsolata, Consolas"
|
||||
fontsize=10
|
||||
margin="0,0"
|
||||
ranksep=0.2
|
||||
penwidth=0.5
|
||||
|
||||
node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal]
|
||||
|
||||
{
|
||||
node [shape=record, fontsize="8", margin="0.04", height=0.2, color=gray]
|
||||
srcjson [label="\{|\"|p|r|o|j|e|c|t|\"|:|\"|r|a|p|i|d|j|s|o|n|\"|,|\"|s|t|a|r|s|\"|:|1|0|\}"]
|
||||
dstjson [label="\{|\"|p|r|o|j|e|c|t|\"|:|\"|r|a|p|i|d|j|s|o|n|\"|,|\"|s|t|a|r|s|\"|:|1|1|\}"]
|
||||
}
|
||||
|
||||
{
|
||||
node [shape="box", style="filled", fillcolor="gray95"]
|
||||
Document2 [label="(Modified) Document"]
|
||||
Writer
|
||||
}
|
||||
|
||||
subgraph cluster1 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "Document"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
node [shape=Mrecord, style=filled, colorscheme=spectral7]
|
||||
|
||||
root [label="{object|}", fillcolor=3]
|
||||
|
||||
{
|
||||
project [label="{string|\"project\"}", fillcolor=5]
|
||||
rapidjson [label="{string|\"rapidjson\"}", fillcolor=5]
|
||||
stars [label="{string|\"stars\"}", fillcolor=5]
|
||||
ten [label="{number|10}", fillcolor=6]
|
||||
}
|
||||
|
||||
edge [arrowhead=vee]
|
||||
root -> { project; stars }
|
||||
|
||||
edge [arrowhead="none"]
|
||||
project -> rapidjson
|
||||
stars -> ten
|
||||
}
|
||||
|
||||
srcjson -> root [label=" Parse()", lhead="cluster1"]
|
||||
|
||||
ten -> Document2 [label=" Increase \"stars\"", ltail="cluster1" ]
|
||||
Document2 -> Writer [label=" Traverse DOM by Accept()"]
|
||||
Writer -> dstjson [label=" Output to StringBuffer"]
|
||||
}
|
BIN
rapidjson/doc/diagram/simpledom.png
Normal file
After Width: | Height: | Size: 43 KiB |
58
rapidjson/doc/diagram/tutorial.dot
Normal file
@@ -0,0 +1,58 @@
|
||||
digraph {
|
||||
compound=true
|
||||
fontname="Inconsolata, Consolas"
|
||||
fontsize=10
|
||||
margin="0,0"
|
||||
ranksep=0.2
|
||||
penwidth=0.5
|
||||
|
||||
node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
edge [fontname="Inconsolata, Consolas", fontsize=10]
|
||||
|
||||
subgraph cluster1 {
|
||||
margin="10,10"
|
||||
labeljust="left"
|
||||
label = "Document"
|
||||
style=filled
|
||||
fillcolor=gray95
|
||||
node [shape=Mrecord, style=filled, colorscheme=spectral7]
|
||||
|
||||
root [label="{object|}", fillcolor=3]
|
||||
|
||||
{
|
||||
hello [label="{string|\"hello\"}", fillcolor=5]
|
||||
t [label="{string|\"t\"}", fillcolor=5]
|
||||
f [label="{string|\"f\"}", fillcolor=5]
|
||||
n [label="{string|\"n\"}", fillcolor=5]
|
||||
i [label="{string|\"i\"}", fillcolor=5]
|
||||
pi [label="{string|\"pi\"}", fillcolor=5]
|
||||
a [label="{string|\"a\"}", fillcolor=5]
|
||||
|
||||
world [label="{string|\"world\"}", fillcolor=5]
|
||||
true [label="{true|}", fillcolor=7]
|
||||
false [label="{false|}", fillcolor=2]
|
||||
null [label="{null|}", fillcolor=1]
|
||||
i1 [label="{number|123}", fillcolor=6]
|
||||
pi1 [label="{number|3.1416}", fillcolor=6]
|
||||
array [label="{array|size=4}", fillcolor=4]
|
||||
|
||||
a1 [label="{number|1}", fillcolor=6]
|
||||
a2 [label="{number|2}", fillcolor=6]
|
||||
a3 [label="{number|3}", fillcolor=6]
|
||||
a4 [label="{number|4}", fillcolor=6]
|
||||
}
|
||||
|
||||
edge [arrowhead=vee]
|
||||
root -> { hello; t; f; n; i; pi; a }
|
||||
array -> { a1; a2; a3; a4 }
|
||||
|
||||
edge [arrowhead=none]
|
||||
hello -> world
|
||||
t -> true
|
||||
f -> false
|
||||
n -> null
|
||||
i -> i1
|
||||
pi -> pi1
|
||||
a -> array
|
||||
}
|
||||
}
|
BIN
rapidjson/doc/diagram/tutorial.png
Normal file
After Width: | Height: | Size: 44 KiB |
73
rapidjson/doc/diagram/utilityclass.dot
Normal file
@@ -0,0 +1,73 @@
|
||||
digraph {
|
||||
rankdir=LR
|
||||
compound=true
|
||||
fontname="Inconsolata, Consolas"
|
||||
fontsize=10
|
||||
margin="0,0"
|
||||
ranksep=0.3
|
||||
nodesep=0.15
|
||||
penwidth=0.5
|
||||
colorscheme=spectral7
|
||||
|
||||
node [shape=box, fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5, style=filled, fillcolor=white]
|
||||
edge [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
|
||||
|
||||
subgraph cluster0 {
|
||||
style=filled
|
||||
fillcolor=4
|
||||
|
||||
Encoding [label="<<concept>>\nEncoding"]
|
||||
|
||||
edge [arrowtail=onormal, dir=back]
|
||||
Encoding -> { UTF8; UTF16; UTF32; ASCII; AutoUTF }
|
||||
UTF16 -> { UTF16LE; UTF16BE }
|
||||
UTF32 -> { UTF32LE; UTF32BE }
|
||||
}
|
||||
|
||||
subgraph cluster1 {
|
||||
style=filled
|
||||
fillcolor=5
|
||||
|
||||
Stream [label="<<concept>>\nStream"]
|
||||
InputByteStream [label="<<concept>>\nInputByteStream"]
|
||||
OutputByteStream [label="<<concept>>\nOutputByteStream"]
|
||||
|
||||
edge [arrowtail=onormal, dir=back]
|
||||
Stream -> {
|
||||
StringStream; InsituStringStream; StringBuffer;
|
||||
EncodedInputStream; EncodedOutputStream;
|
||||
AutoUTFInputStream; AutoUTFOutputStream
|
||||
InputByteStream; OutputByteStream
|
||||
}
|
||||
|
||||
InputByteStream -> { MemoryStream; FlieReadStream }
|
||||
OutputByteStream -> { MemoryBuffer; FileWriteStream }
|
||||
}
|
||||
|
||||
subgraph cluster2 {
|
||||
style=filled
|
||||
fillcolor=3
|
||||
|
||||
Allocator [label="<<concept>>\nAllocator"]
|
||||
|
||||
edge [arrowtail=onormal, dir=back]
|
||||
Allocator -> { CrtAllocator; MemoryPoolAllocator }
|
||||
}
|
||||
|
||||
{
|
||||
edge [arrowtail=odiamond, arrowhead=vee, dir=both]
|
||||
EncodedInputStream -> InputByteStream
|
||||
EncodedOutputStream -> OutputByteStream
|
||||
AutoUTFInputStream -> InputByteStream
|
||||
AutoUTFOutputStream -> OutputByteStream
|
||||
MemoryPoolAllocator -> Allocator [label="base", tailport=s]
|
||||
}
|
||||
|
||||
{
|
||||
edge [arrowhead=vee, style=dashed]
|
||||
AutoUTFInputStream -> AutoUTF
|
||||
AutoUTFOutputStream -> AutoUTF
|
||||
}
|
||||
|
||||
//UTF32LE -> Stream [style=invis]
|
||||
}
|
BIN
rapidjson/doc/diagram/utilityclass.png
Normal file
After Width: | Height: | Size: 98 KiB |