Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(330)

Side by Side Diff: net/docs/url_request.dot

Issue 1859793002: Include class relationship diagrams in network stack documentation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Put net_docs.py back for Cronet. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/docs/pools.svg ('k') | net/docs/url_request.svg » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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;
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 HttpStreamFactoryImpl;
85 HttpStreamRequest [style=dashed];
86 HttpStream [style=dashed];
87 HttpStreamFactoryImpl_Request [label="HttpStreamFactoryImpl::Request"];
88 HttpStreamFactoryImpl_Job [label="HttpStreamFactoryImpl::Job"];
89 HttpStreamRequest_Delegate
90 [label="HttpStreamRequest::Delegate",style=dashed];
91 HttpBasicStream;
92 QuicHttpStream;
93 SpdyHttpStream;
94 HttpBasicState;
95
96 HttpNetworkTransaction -> HttpStreamRequest_Delegate
97 [style=dashed, arrowhead="empty"];
98 HttpStreamFactoryImpl_Request -> HttpStreamRequest
99 [style=dashed, arrowhead="empty"];
100 { HttpBasicStream, QuicHttpStream, SpdyHttpStream } -> HttpStream
101 [style=dashed, arrowhead="empty"];
102
103 HttpStreamRequest -> HttpNetworkTransaction [arrowhead="diamond"];
104 HttpStream -> HttpNetworkTransaction [arrowhead="diamond"];
105 HttpBasicState -> HttpBasicStream [arrowhead=diamond];
106 HttpStreamFactoryImpl_Job -> HttpStreamFactoryImpl_Request
107 [arrowhead="diamond",taillabel="1..*"];
108
109 HttpStreamRequest_Delegate -> HttpStreamFactoryImpl_Request
110 [arrowhead=odiamond];
111 HttpStreamFactoryImpl_Job -> HttpStreamFactoryImpl_Job
112 [arrowhead=odiamond, label="blocking_job_\nwaiting_job_"];
113
114 subgraph {
115 rank=same;
116 HttpStreamFactoryImpl -> HttpStreamRequest [arrowhead=veevee];
117 }
118 subgraph {
119 rank=same;
120 HttpStreamRequest -> HttpStream [arrowhead=veevee];
121 }
122
123 ## ClientSocketHandle and socket pools.
124 ClientSocketPool [style=dashed];
125 TransportClientSocketPool;
126 SSLClientSocketPool;
127 ClientSocketPool_Others [label="...others..."];
128 ClientSocketPoolBase [label="ClientSocketPoolBase", shape=diamond];
129 ClientSocketPoolBaseHelper;
130
131 ConnectJobFactory;
132 ConnectJob [style=dashed];
133 TransportConnectJob;
134 SSLConnectJob;
135 ConnectJob_Others [label="...other connect job types..."];
136 ConnectJob_Delegate [label="ConnectJob::Delegate",style=dashed];
137
138 StreamSocket [style=dashed];
139 TCPClientSocket;
140 StreamSocket_Others [label="...other socket types..."];
141
142 TransportConnectJobHelper;
143 SingleRequestHostResolver;
144
145 { SSLClientSocketPool, TransportClientSocketPool,
146 ClientSocketPool_Others} -> ClientSocketPool
147 [style=dashed, arrowhead=empty];
148 ClientSocketPoolBaseHelper -> ConnectJob_Delegate
149 [arrowhead=empty, style=dashed];
150 StreamSocket -> Socket [arrowhead=empty, style=dashed];
151 { TCPClientSocket, StreamSocket_Others } -> StreamSocket
152 [arrowhead=empty, style=dashed];
153 {SSLConnectJob, TransportConnectJob, ConnectJob_Others} -> ConnectJob
154 [style=dashed, arrowhead=empty];
155
156 ClientSocketHandle -> HttpStreamFactoryImpl_Job [arrowhead="diamond"];
157 ClientSocketHandle -> HttpBasicState [arrowhead="diamond"];
158 ClientSocketPoolBaseHelper -> ClientSocketPoolBase [arrowhead=diamond];
159 ClientSocketPoolBase -> TransportClientSocketPool
160 [arrowhead=diamond, label=TransportSocketParams];
161 ClientSocketPoolBase -> SSLClientSocketPool
162 [arrowhead=diamond, label=SSLSocketParams];
163
164 StreamSocket -> ClientSocketHandle [arrowhead=diamond];
165 ConnectJobFactory -> ClientSocketPoolBase [arrowhead=diamond];
166 StreamSocket -> ConnectJob [arrowhead=diamond];
167 SingleRequestHostResolver -> TransportConnectJobHelper
168 [arrowhead=diamond];
169 TransportConnectJobHelper -> TransportConnectJob [arrowhead=diamond];
170
171 ClientSocketPool -> ClientSocketHandle [arrowhead=odiamond];
172 ConnectJob_Delegate -> ConnectJob [arrowhead=odiamond];
173
174 subgraph {
175 rank=same;
176 ConnectJobFactory -> ConnectJob [arrowhead=veevee];
177 }
178 subgraph {
179 rank=same;
180 HttpStreamFactoryImpl_Job -> ClientSocketHandle [arrowhead=veevee];
181 }
182 subgraph {
183 rank=same;
184 TransportConnectJob -> StreamSocket [arrowhead=veevee];
185 }
186 }
OLDNEW
« no previous file with comments | « net/docs/pools.svg ('k') | net/docs/url_request.svg » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698