-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdto.dot
54 lines (51 loc) · 3.59 KB
/
dto.dot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
digraph {
rankdir=LR;
node [shape=plaintext];
subgraph cluster__dto {
label="Dto";
graph[style=dotted];
dto__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
<TR><TD PORT="header_pos">0</TD><TD PORT="header_size">32</TD><TD>Header</TD><TD PORT="header_type">header</TD></TR>
<TR><TD PORT="entries_pos">32</TD><TD PORT="entries_size">32</TD><TD>Entry</TD><TD PORT="entries_type">entries</TD></TR>
<TR><TD COLSPAN="4" PORT="entries__repeat">repeat header.dt_entry_count times</TD></TR>
</TABLE>>];
subgraph cluster__header {
label="Dto::Header";
graph[style=dotted];
header__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
<TR><TD PORT="magic_pos">0</TD><TD PORT="magic_size">4</TD><TD>D7 B7 AB 1E</TD><TD PORT="magic_type">magic</TD></TR>
<TR><TD PORT="total_size_pos">4</TD><TD PORT="total_size_size">4</TD><TD>u4be</TD><TD PORT="total_size_type">total_size</TD></TR>
<TR><TD PORT="header_size_pos">8</TD><TD PORT="header_size_size">4</TD><TD>u4be</TD><TD PORT="header_size_type">header_size</TD></TR>
<TR><TD PORT="dt_entry_size_pos">12</TD><TD PORT="dt_entry_size_size">4</TD><TD>u4be</TD><TD PORT="dt_entry_size_type">dt_entry_size</TD></TR>
<TR><TD PORT="dt_entry_count_pos">16</TD><TD PORT="dt_entry_count_size">4</TD><TD>u4be</TD><TD PORT="dt_entry_count_type">dt_entry_count</TD></TR>
<TR><TD PORT="dt_entries_offset_pos">20</TD><TD PORT="dt_entries_offset_size">4</TD><TD>u4be</TD><TD PORT="dt_entries_offset_type">dt_entries_offset</TD></TR>
<TR><TD PORT="page_size_pos">24</TD><TD PORT="page_size_size">4</TD><TD>u4be</TD><TD PORT="page_size_type">page_size</TD></TR>
<TR><TD PORT="version_pos">28</TD><TD PORT="version_size">4</TD><TD>u4be</TD><TD PORT="version_type">version</TD></TR>
</TABLE>>];
}
subgraph cluster__entry {
label="Dto::Entry";
graph[style=dotted];
entry__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
<TR><TD PORT="size_pos">0</TD><TD PORT="size_size">4</TD><TD>u4be</TD><TD PORT="size_type">size</TD></TR>
<TR><TD PORT="offset_pos">4</TD><TD PORT="offset_size">4</TD><TD>u4be</TD><TD PORT="offset_type">offset</TD></TR>
<TR><TD PORT="id_pos">8</TD><TD PORT="id_size">4</TD><TD>u4be</TD><TD PORT="id_type">id</TD></TR>
<TR><TD PORT="rev_pos">12</TD><TD PORT="rev_size">4</TD><TD>u4be</TD><TD PORT="rev_type">rev</TD></TR>
<TR><TD PORT="custom_pos">16</TD><TD PORT="custom_size">4</TD><TD>u4be</TD><TD PORT="custom_type">custom</TD></TR>
<TR><TD COLSPAN="4" PORT="custom__repeat">repeat 4 times</TD></TR>
</TABLE>>];
entry__inst__body [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
<TR><TD PORT="body_pos">offset</TD><TD PORT="body_size">size</TD><TD></TD><TD PORT="body_type">body</TD></TR>
</TABLE>>];
}
}
dto__seq:header_type -> header__seq [style=bold];
dto__seq:entries_type -> entry__seq [style=bold];
header__seq:dt_entry_count_type -> dto__seq:entries__repeat [color="#404040"];
entry__seq:offset_type -> entry__inst__body:body_pos [color="#404040"];
entry__seq:size_type -> entry__inst__body:body_size [color="#404040"];
}