[M94 Dev][Tizen] Fix for compiler and linker errors
[platform/framework/web/chromium-efl.git] / net / docs / url_request.dot
1 digraph URLRequestRoot {
2     subgraph cluster_legend {
3         label="Legend";
4
5         ## The following legend is an attempt to match UML notation,
6         ## except for template_class and Factory->object, which are
7         ## invented for this diagram.
8         BaseClass;
9         SubClass [label="Derived Class"];
10         Whole;
11         Part;
12         A;
13         B;
14         Interface [label="Interface / ABC", style=dashed];
15         template_class [shape=diamond]; # Link will name parameter(s)
16
17         SubClass -> BaseClass [arrowhead="empty"];
18         SubClass -> Interface [arrowhead="empty", style=dashed];
19         Part -> Whole [arrowhead="diamond", label="ownership"];
20         Part -> Whole [arrowhead="odiamond", label="pointer"];
21         A -> B [arrowhead="none", headlabel="?..?", taillabel="?..?",
22                 label="association"];
23         // Often a "subgraph { rank=same; .. }" is used to wrap the
24         // below to make the generative relationship distinctive
25         // from the other class relationships.
26         Factory -> object [arrowhead=veevee];
27     };
28
29     ## URLRequest, URLRequestJob, and subclasses
30     URLRequestContext;
31     URLRequest;
32     URLRequestJob [style=dashed];
33     URLRequestJob_Others [label="...other job types..."];
34     URLRequestHttpJob;
35     Filter;
36
37     {URLRequestHttpJob, URLRequestJob_Others} -> URLRequestJob
38         [arrowhead="empty"];
39
40     URLRequestJob -> URLRequest [arrowhead="diamond"];
41     Filter -> URLRequestJob [arrowhead="diamond"];
42     Filter -> Filter [arrowhead="diamond", taillabel="0..1"];
43
44     subgraph {
45         rank=same;
46         URLRequestContext -> URLRequest [arrowhead=veevee];
47     }
48     subgraph {
49         rank=same;
50         URLRequestHttpJob -> Filter [arrowhead=veevee];
51     }
52
53
54     ## HttpTransaction, subclasses, and generative classes.
55     HttpTransactionFactory [style=dashed];
56     HttpCache;
57     HttpNetworkLayer;
58     HttpTransaction [style=dashed];
59     HttpCache_Transaction [label="HttpCache::Transaction"];
60     HttpNetworkTransaction;
61
62     { HttpNetworkTransaction, HttpCache_Transaction } -> HttpTransaction
63         [style=dashed, arrowhead="empty"];
64     { HttpNetworkLayer, HttpCache } -> HttpTransactionFactory
65         [arrowhead=empty, style=dashed];
66
67     HttpTransaction -> HttpCache_Transaction  [arrowhead=diamond];
68     HttpTransaction -> URLRequestHttpJob [arrowhead="diamond"]
69
70     subgraph {
71         rank=same;
72         HttpCache -> HttpCache_Transaction [arrowhead=veevee];
73     }
74     subgraph {
75         rank=same;
76         HttpTransactionFactory -> HttpTransaction [arrowhead=veevee];
77     }
78     subgraph {
79         rank=same;
80         HttpNetworkLayer -> HttpNetworkTransaction [arrowhead=veevee];
81     }
82
83     ## HttpStreamFactory and related.
84     HttpStreamFactory;
85     HttpStreamRequest;
86     HttpStream [style=dashed];
87     HttpStreamFactory_Job [label="HttpStreamFactory::Job"];
88     HttpStreamRequest_Delegate
89         [label="HttpStreamRequest::Delegate",style=dashed];
90     HttpBasicStream;
91     QuicHttpStream;
92     SpdyHttpStream;
93     HttpBasicState;
94
95     HttpNetworkTransaction -> HttpStreamRequest_Delegate
96         [style=dashed, arrowhead="empty"];
97     { HttpBasicStream, QuicHttpStream, SpdyHttpStream } -> HttpStream
98         [style=dashed, arrowhead="empty"];
99
100     HttpStreamRequest -> HttpNetworkTransaction [arrowhead="diamond"];
101     HttpStream -> HttpNetworkTransaction [arrowhead="diamond"];
102     HttpBasicState -> HttpBasicStream [arrowhead=diamond];
103     HttpStreamFactory_Job -> HttpStreamRequest
104         [arrowhead="diamond",taillabel="1..*"];
105
106     HttpStreamRequest_Delegate -> HttpStreamRequest
107         [arrowhead=odiamond];
108     HttpStreamFactory_Job -> HttpStreamFactory_Job
109         [arrowhead=odiamond, label="blocking_job_\nwaiting_job_"];
110
111     subgraph {
112         rank=same;
113         HttpStreamFactory -> HttpStreamRequest [arrowhead=veevee];
114     }
115     subgraph {
116         rank=same;
117         HttpStreamRequest -> HttpStream [arrowhead=veevee];
118     }
119
120     ## ClientSocketHandle and socket pools.
121     ClientSocketPool [style=dashed];
122     TransportClientSocketPool;
123     SSLClientSocketPool;
124     ClientSocketPool_Others [label="...others..."];
125     ClientSocketPoolBase [label="ClientSocketPoolBase", shape=diamond];
126     ClientSocketPoolBaseHelper;
127
128     ConnectJobFactory;
129     ConnectJob [style=dashed];
130     TransportConnectJob;
131     SSLConnectJob;
132     ConnectJob_Others [label="...other connect job types..."];
133     ConnectJob_Delegate [label="ConnectJob::Delegate",style=dashed];
134
135     StreamSocket [style=dashed];
136     TCPClientSocket;
137     StreamSocket_Others [label="...other socket types..."];
138
139     TransportConnectJobHelper;
140     SingleRequestHostResolver;
141
142     { SSLClientSocketPool, TransportClientSocketPool,
143       ClientSocketPool_Others} -> ClientSocketPool
144         [style=dashed, arrowhead=empty];
145     ClientSocketPoolBaseHelper -> ConnectJob_Delegate
146         [arrowhead=empty, style=dashed];
147     StreamSocket -> Socket [arrowhead=empty, style=dashed];
148     { TCPClientSocket, StreamSocket_Others } -> StreamSocket
149         [arrowhead=empty, style=dashed];
150     {SSLConnectJob, TransportConnectJob, ConnectJob_Others} -> ConnectJob
151         [style=dashed, arrowhead=empty];
152
153     ClientSocketHandle -> HttpStreamFactory_Job [arrowhead="diamond"];
154     ClientSocketHandle -> HttpBasicState [arrowhead="diamond"];
155     ClientSocketPoolBaseHelper -> ClientSocketPoolBase [arrowhead=diamond];
156     ClientSocketPoolBase -> TransportClientSocketPool
157         [arrowhead=diamond, label=TransportSocketParams];
158     ClientSocketPoolBase -> SSLClientSocketPool
159         [arrowhead=diamond, label=SSLSocketParams];
160
161     StreamSocket -> ClientSocketHandle [arrowhead=diamond];
162     ConnectJobFactory -> ClientSocketPoolBase [arrowhead=diamond];
163     StreamSocket -> ConnectJob [arrowhead=diamond];
164     SingleRequestHostResolver -> TransportConnectJobHelper
165         [arrowhead=diamond];
166     TransportConnectJobHelper -> TransportConnectJob [arrowhead=diamond];
167
168     ClientSocketPool -> ClientSocketHandle  [arrowhead=odiamond];
169     ConnectJob_Delegate -> ConnectJob  [arrowhead=odiamond];
170
171     subgraph {
172         rank=same;
173         ConnectJobFactory -> ConnectJob [arrowhead=veevee];
174     }
175     subgraph {
176         rank=same;
177         HttpStreamFactory_Job -> ClientSocketHandle [arrowhead=veevee];
178     }
179     subgraph {
180         rank=same;
181         TransportConnectJob -> StreamSocket [arrowhead=veevee];
182     }
183 }