-
Notifications
You must be signed in to change notification settings - Fork 0
/
flow.dot
81 lines (63 loc) · 2.42 KB
/
flow.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/env dot -Tjpg -o flow.jpg
/*
Graphviz - DOT language writing!
*/
digraph Diagram {
PROFILE [label = "The Flow diagram of c-icap-java", shape=none];
nodesep=0.1;
//デフォルトノード
node [fontsize=10];
//デフォルトエッジ
edge [fontsize=9];
START [shape=doublecircle]
START -> init_handler [label="Server start"]
//c-icap module
subgraph clusterModuleFunctions {
label = "Module side";
style = bold;
init_handler [label="init_java_handler"];
load_module [label="load_java_module"];
post_init_handler [label="post_init_java_handler"];
release_handler [label="release_java_handler"];
}
//c-icap service
subgraph clusterServiceFunctions {
label = "Service side";
init_service [label="java_init_java_service"];
post_init_service [label="java_post_init_java_service"];
subgraph clusterRunningFunctions {
label = "execution";
init_request_data [label="java_init_request_data"];
check_preview_handler [label="java_check_preview_handler"];
service_io [label="java_service_io"];
end_of_data [label="java_end_of_data"];
release_request_data [label="java_release_request_data"];
}
close_service [label="java_close_service"];
}
{edge[style=invis]; //inivisible allow fix layout.
{init_handler load_module} -> {init_service post_init_service};
}
subgraph clusterInitFlow {
init_handler -> load_module;
load_module -> init_service [label=""];
init_service -> post_init_handler [label=""];
post_init_handler -> post_init_service [label=""];
}
post_init_service -> init_request_data [label=""]
subgraph clusterRunFlow {
init_request_data -> check_preview_handler [label=""];
check_preview_handler -> service_io [label=""];
service_io -> end_of_data [label=""];
end_of_data -> release_request_data [label=""];
release_request_data -> init_request_data [label="ICAP request loop"];//ループ
}
SIGTERM [shape=doublecircle, label="TEMRINATE"]
subgraph HaltFlow {
SIGTERM -> close_service [label=""];
close_service -> release_handler [label=""];
}
END [shape=doublecircle];
release_handler -> END [label="Server stop"];
{ rank=same; START END } //配置を一緒の階層にする
}