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

Unified Diff: net/docs/pools.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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/docs/life-of-a-url-request.md ('k') | net/docs/pools.svg » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/docs/pools.dot
diff --git a/net/docs/pools.dot b/net/docs/pools.dot
new file mode 100644
index 0000000000000000000000000000000000000000..271d98de138f6f4c21f838ee5d8546bdc8e348aa
--- /dev/null
+++ b/net/docs/pools.dot
@@ -0,0 +1,101 @@
+digraph SocketPools {
+ subgraph cluster_legend {
+ label="Legend";
+
+ ## The following legend is an attempt to match UML notation,
+ ## except for template_class and Factory->object, which are
+ ## invented for this diagram.
+ BaseClass;
+ SubClass [label="Derived Class"];
+ Whole;
+ Part;
+ A;
+ B;
+ Interface [label="Interface / ABC", style=dashed];
+ template_class [shape=diamond]; # Link will name parameter(s)
+
+ SubClass -> BaseClass [arrowhead="empty"];
+ SubClass -> Interface [arrowhead="empty", style=dashed];
+ Part -> Whole [arrowhead="diamond", label="ownership"];
+ Part -> Whole [arrowhead="odiamond", label="pointer"];
+ RefCountedPart -> Whole [arrowhead="diamond", color=red,
+ label="partial\nownership"];
+ A -> B [arrowhead="none", headlabel="?..?", taillabel="?..?",
+ label="association"];
+ // Often a "subgraph { rank=same; .. }" is used to wrap the
+ // below to make the generative relationship distinctive
+ // from the other class relationships.
+ Factory -> object [arrowhead=veevee];
+ };
+
+ ClientSocketPoolBase [shape=diamond];
+ ClientSocketPoolBaseHelper;
+
+ ClientSocketPoolBaseHelper_ConnectJobFactory
+ [style=dotted, label="ClientSocketPoolBaseHelper::\nConnectJobFactory"];
+ ClientSocketPoolBase_ConnectJobFactory
+ [style=dotted, shape=diamond,
+ label="ClientSocketPoolBase::\nConnectJobFactory"];
+ ClientSocketPoolBase_ConnectJobFactoryAdaptor
+ [shape=diamond,
+ label="ClientSocketPoolBase::\nConnectJobFactoryAdaptor"];
+
+ HigherLayeredPool [style=dotted];
+ LowerLayeredPool [style=dotted];
+ ClientSocketPool [style=dotted];
+
+ ConnectJob [style=dashed];
+ ConnectJob_Delegate [style=dotted, label="ConnectJob::Delegate"];
+
+ ClientSocketFactory [style=dotted];
+ DefaultClientSocketFactory;
+ TCPClientSocket;
+ StreamSocket [style=dotted]
+ Socket;
+
+ TransportSocketParams;
+ TransportConnectJobHelper;
+ TransportConnectJobFactory;
+ TransportConnectJob;
+
+ TransportClientSocketPool -> ClientSocketPool [arrowhead=empty];
+ ClientSocketPool -> LowerLayeredPool [arrowhead=empty];
+ ClientSocketPoolBaseHelper -> ConnectJob_Delegate [arrowhead=empty];
+ TransportConnectJobFactory -> ClientSocketPoolBase_ConnectJobFactory
+ [arrowhead=empty, label="TransportSocketParams"];
+ ClientSocketPoolBase_ConnectJobFactoryAdaptor ->
+ ClientSocketPoolBaseHelper_ConnectJobFactory
+ [arrowhead=empty, arrowtail=none];
+ TransportConnectJob -> ConnectJob [arrowhead=empty];
+ DefaultClientSocketFactory -> ClientSocketFactory [arrowhead=empty];
+ StreamSocket -> Socket [arrowhead=empty]
+ TCPClientSocket -> StreamSocket [arrowhead=empty]
+
+ ClientSocketPoolBaseHelper -> ClientSocketPoolBase [arrowhead=diamond];
+ ClientSocketPoolBase -> TransportClientSocketPool
+ [arrowhead=diamond, label="TransportSocketParams"];
+ ClientSocketPoolBase_ConnectJobFactory ->
+ ClientSocketPoolBase_ConnectJobFactoryAdaptor [arrowhead=diamond];
+ ClientSocketPoolBaseHelper_ConnectJobFactory ->
+ ClientSocketPoolBaseHelper [arrowhead=diamond];
+ TransportConnectJobHelper -> TransportConnectJob [arrowhead=diamond];
+ TransportSocketParams -> TransportConnectJobHelper
+ [arrowhead=diamond, color=red];
+
+ ConnectJob -> ConnectJob_Delegate
+ [dir=back, arrowhead=none, arrowtail=odiamond];
+ HigherLayeredPool -> ClientSocketPoolBaseHelper
+ [arrowhead=odiamond, taillabel="*"];
+ LowerLayeredPool -> ClientSocketPoolBaseHelper
+ [arrowhead=odiamond, taillabel="*"];
+ ClientSocketFactory -> ClientSocketPoolBaseHelper [arrowhead=odiamond];
+
+ subgraph {
+ rank=same;
+ ClientSocketPoolBaseHelper_ConnectJobFactory -> ConnectJob
+ [arrowhead=veevee];
+ }
+ ClientSocketPoolBase_ConnectJobFactory -> ConnectJob [arrowhead=veevee];
+ ClientSocketFactory -> TCPClientSocket [arrowhead=veevee]
+}
+
« no previous file with comments | « net/docs/life-of-a-url-request.md ('k') | net/docs/pools.svg » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698