OLD | NEW |
(Empty) | |
| 1 digraph URLRequestRoot { |
| 2 subgraph cluster_legend { |
| 3 label="Legend"; |
| 4 |
| 5 ## UML |
| 6 SubClass -> BaseClass [arrowhead="empty"]; |
| 7 SubClass -> Interface [arrowhead="empty", style=dashed]; |
| 8 Part -> Whole [arrowhead="diamond", label="ownership"]; |
| 9 Part -> Whole [arrowhead="odiamond", label="pointer"]; |
| 10 A -> B [arrowhead="none", headlabel="?..?", taillabel="?..?", |
| 11 label="association"]; |
| 12 Interface [label="Interface / ABC", style=dashed]; |
| 13 template_class [shape=diamond]; # Link will name parameter(s) |
| 14 |
| 15 |
| 16 Factory -> object [arrowhead=veevee]; |
| 17 SubClass [label="Derived Class"]; |
| 18 }; |
| 19 |
| 20 URLRequest; // Non-threadsafe, SupportsUserData |
| 21 URLRequestContext; |
| 22 URLRequestJob [style=dashed]; // RC, base::PowerObserver |
| 23 // Many subclasses |
| 24 HttpCache_Transaction [label="HttpCache::Transaction"]; |
| 25 HttpStreamFactoryImpl_Request [label="HttpStreamFactoryImpl::Request"]; |
| 26 HttpStreamFactoryImpl_Job [label="HttpStreamFactoryImpl::Job"]; |
| 27 HttpStreamRequest_Delegate [label="HttpStreamRequest::Delegate",style=da
shed]; |
| 28 Filter; |
| 29 |
| 30 URLRequestContext -> URLRequest [arrowhead=veevee]; |
| 31 Filter -> URLRequestJob [arrowhead="diamond"]; |
| 32 Filter -> Filter [arrowhead="diamond", taillabel="0..1"]; |
| 33 URLRequestHttpJob -> Filter [arrowhead=veevee]; |
| 34 |
| 35 URLRequestJob -> URLRequest [arrowhead="diamond"]; |
| 36 |
| 37 URLRequestHttpJob -> URLRequestJob [arrowhead="empty"]; |
| 38 // Handles both http & https |
| 39 |
| 40 URLRequestJobOthers [label="...others..."]; |
| 41 URLRequestJobOthers -> URLRequestJob [arrowhead="empty"]; |
| 42 |
| 43 // Indirects to network delegate. |
| 44 |
| 45 HttpCache; |
| 46 HttpNetworkLayer; |
| 47 HttpTransactionFactory; |
| 48 HttpTransaction [style=dashed]; |
| 49 HttpTransaction_Others [label="...others..."]; |
| 50 HttpTransaction -> URLRequestHttpJob [arrowhead="diamond"] |
| 51 |
| 52 HttpNetworkLayer -> HttpTransactionFactory [arrowhead=empty, style=dashe
d]; |
| 53 |
| 54 HttpStreamFactoryImpl_Job -> HttpStreamFactoryImpl_Request [arrowhead="d
iamond",taillabel="1..*"]; |
| 55 |
| 56 ClientSocketHandle -> {HttpStreamFactoryImpl_Job,HttpBasicState} [arrowh
ead="diamond"]; |
| 57 ClientSocketPool [style=dashed]; |
| 58 ClientSocketPool -> ClientSocketHandle [arrowhead=odiamond]; |
| 59 |
| 60 {SSLClientSocketPool, TransportClientSocketPool, ClientSocketPool_Others
} -> ClientSocketPool [style=dashed, arrowhead=empty]; |
| 61 ClientSocketPool_Others [label="...others..."]; |
| 62 |
| 63 ClientSocketPoolBase -> TransportClientSocketPool [arrowhead=diamond, la
bel=TransportSocketParams]; |
| 64 ClientSocketPoolBase [label="ClientSocketPoolBase", shape=diamond]; |
| 65 |
| 66 ClientSocketPoolBaseHelper -> ConnectJob_Delegate [arrowhead=empty, styl
e=dashed]; |
| 67 ConnectJob [style=dashed]; |
| 68 ConnectJob_Delegate [label="ConnectJob::Delegate",style=dashed]; |
| 69 |
| 70 StreamSocket [style=dashed]; |
| 71 StreamSocket -> Socket [arrowhead=empty, style=dashed]; |
| 72 TCPClientSocket -> StreamSocket [arrowhead=empty, style=dashed]; |
| 73 StreamSocket_others -> StreamSocket [arrowhead=empty, style=dashed]; |
| 74 StreamSocket_others [label="...others..."]; |
| 75 StreamSocket -> ClientSocketHandle [arrowhead=diamond]; |
| 76 ConnectJobFactory -> ClientSocketPoolBase [arrowhead=diamond]; |
| 77 subgraph { rank=same; ConnectJobFactory -> ConnectJob [arrowhead=veevee]
;} |
| 78 StreamSocket -> ConnectJob [arrowhead=diamond]; |
| 79 |
| 80 TransportConnectJob; |
| 81 TransportConnectJobHelper; |
| 82 SingleRequestHostResolver; |
| 83 |
| 84 SingleRequestHostResolver -> TransportConnectJobHelper -> |
| 85 TransportConnectJob [arrowhead=diamond]; |
| 86 |
| 87 {SSLConnectJob, TransportConnectJob, ConnectJob_Others} -> ConnectJob [s
tyle=dashed, arrowhead=empty]; |
| 88 ConnectJob_Others [label="...others..."]; |
| 89 |
| 90 ConnectJob_Delegate -> ConnectJob [arrowhead=odiamond]; |
| 91 ClientSocketPoolBaseHelper -> ClientSocketPoolBase [arrowhead=diamond]; |
| 92 |
| 93 subgraph { |
| 94 rank=same; |
| 95 URLRequestJobManager -> URLRequestJob [arrowhead=veevee]; |
| 96 } |
| 97 |
| 98 TransportClientSocketPool -> ClientSocketHandle [arrowhead=veevee]; |
| 99 |
| 100 HttpTransactionFactory [style=dashed]; |
| 101 HttpCache -> HttpTransactionFactory [arrowhead=empty, style=dashed]; |
| 102 HttpTransactionFactory -> HttpTransaction [arrowhead=veevee]; |
| 103 HttpNetworkLayer -> HttpNetworkTransaction [arrowhead=veevee]; |
| 104 HttpCache -> HttpCache_Transaction [arrowhead=veevee]; |
| 105 |
| 106 HttpStreamRequest_Delegate -> HttpStreamFactoryImpl_Request [arrowhead=
odiamond]; |
| 107 subgraph { rank=same; HttpStreamFactoryImpl -> HttpStreamRequest -> Http
Stream [arrowhead=veevee];} |
| 108 |
| 109 HttpTransaction_Others -> HttpTransaction [style=dashed, arrowhead="empt
y"]; |
| 110 HttpCache_Transaction -> HttpTransaction [style=dashed, arrowhead="empty
"]; |
| 111 HttpTransaction -> HttpCache_Transaction [arrowhead=diamond]; |
| 112 HttpNetworkTransaction -> HttpTransaction [style=dashed, arrowhead="empt
y"]; |
| 113 |
| 114 HttpStreamRequest [style=dashed]; |
| 115 HttpStreamRequest -> HttpNetworkTransaction [arrowhead="diamond"]; |
| 116 HttpStream -> HttpNetworkTransaction [arrowhead="diamond"]; |
| 117 HttpNetworkTransaction -> HttpStreamRequest_Delegate [style=dashed, arro
whead="empty"]; |
| 118 HttpStreamFactoryImpl_Request -> HttpStreamRequest [style=dashed, arrowh
ead="empty"]; |
| 119 HttpStream [style=dashed]; |
| 120 HttpBasicState -> HttpBasicStream [arrowhead=diamond]; |
| 121 HttpBasicStream -> HttpStream [style=dashed, arrowhead="empty"]; |
| 122 QuicHttpStream -> HttpStream [style=dashed, arrowhead="empty"]; |
| 123 SpdyHttpStream -> HttpStream [style=dashed, arrowhead="empty"]; |
| 124 } |
OLD | NEW |