Index: net/docs/pools.dot |
diff --git a/net/docs/pools.dot b/net/docs/pools.dot |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8568bb9d0fbbb03db7137cd546ca4d336e8e7969 |
--- /dev/null |
+++ b/net/docs/pools.dot |
@@ -0,0 +1,109 @@ |
+digraph SocketPools { |
eroman
2016/04/04 21:29:18
does this need a liscence header at the top?
Randy Smith (Not in Mondays)
2016/04/04 21:44:50
Probably. I'll put it on my todo list, for when I
|
+subgraph cluster_legend { |
+ label="legend"; |
+ a; |
+ factory; |
+ derived_class; |
+ pure_ABC [style=dotted]; |
+ mixed_ABC [style=dashed]; |
+ template_class [shape=diamond]; # Link will name parameter(s) |
+ |
+ whole; |
+ |
+ whole -> referenced_part # Raw pointer |
+ [dir=back, arrowhead=none, arrowtail=odiamond]; |
+ |
+ whole -> owned_part # Member of scoped_ptr<> |
+ [dir=back, arrowhead=none, arrowtail=diamond]; |
+ |
+ whole -> reference_counted_semi_owned_part |
+ [dir=back, arrowhead=none, arrowtail=diamond, color=red]; |
+ |
+ derived_class -> base_class |
+ [dir=both, arrowhead=empty, arrowtail=none]; |
+ |
+ derived_class -> pure_ABC |
+ [dir=both, arrowhead=empty, arrowtail=none, style=dashed]; |
+ |
+ # May want to put inside rank=same subgraph. |
+ factory -> generated_object [arrowhead=veevee, weight=0]; |
+ |
+ a -> b [headlabel="0..*", taillabel="1..*", |
+ label="associated with", |
+ arrowhead="none"]; |
+ |
+ |
+}; |
+ |
+ |
+ |
+ ConnectJob [style=dashed]; |
+ ConnectJob_Delegate [style=dotted, label="ConnectJob::Delegate"]; |
+ ClientSocketPoolBaseHelper; |
+ |
+ ClientSocketPoolBase [shape=diamond]; |
+ HigherLayeredPool [style=dotted]; |
+ LowerLayeredPool [style=dotted]; |
+ ClientSocketPool [style=dotted]; |
+ TransportSocketParams; # RC |
+ TransportConnectJobHelper; |
+ TransportConnectJob; |
+ ClientSocketPoolBaseHelper_ConnectJobFactory |
+ [style=dotted, label="ClientSocketPoolBaseHelper::\nConnectJobFactory"]; |
+ ClientSocketPoolBase_ConnectJobFactory |
+ [style=dotted, shape=diamond, |
+ label="ClientSocketPoolBase::\nConnectJobFactory"]; |
+ TransportConnectJobFactory; |
+ ClientSocketPoolBase_ConnectJobFactoryAdaptor |
+ [shape=diamond, |
+ label="ClientSocketPoolBase::\nConnectJobFactoryAdaptor"]; |
+ |
+ ClientSocketPoolBase_ConnectJobFactoryAdaptor -> |
+ ClientSocketPoolBaseHelper_ConnectJobFactory |
+ [dir=both, arrowhead=empty, arrowtail=none]; |
+ |
+ ClientSocketPoolBase_ConnectJobFactoryAdaptor -> |
+ ClientSocketPoolBase_ConnectJobFactory |
+ [dir=back, arrowhead=none, arrowtail=diamond]; |
+ |
+ TransportConnectJobFactory -> ClientSocketPoolBase_ConnectJobFactory |
+ [dir=both, arrowhead=empty, arrowtail=none, |
+ label="TransportSocketParams"] |
+ |
+ TransportConnectJob -> ConnectJob |
+ [dir=both, arrowhead=empty, arrowtail=none]; |
+ |
+ ClientSocketPoolBaseHelper -> ConnectJob_Delegate |
+ [arrowtail=none, arrowhead=empty, dir=both]; |
+ ClientSocketPool -> LowerLayeredPool |
+ [arrowtail=none, arrowhead=empty, dir=both]; |
+ |
+ ClientSocketPoolBaseHelper -> HigherLayeredPool |
+ [dir=back, arrowhead=none, arrowtail=odiamond, headlabel="*"]; |
+ ClientSocketPoolBaseHelper -> LowerLayeredPool |
+ [dir=back, arrowhead=none, arrowtail=odiamond, headlabel="*"]; |
+ ClientSocketPoolBaseHelper -> ClientSocketPoolBaseHelper_ConnectJobFactory |
+ [dir=back, arrowhead=none, arrowtail=diamond]; |
+ ClientSocketPoolBase -> ClientSocketPoolBaseHelper |
+ [dir=back, arrowhead=none, arrowtail=diamond]; |
+ |
+ TransportConnectJobHelper -> TransportSocketParams |
+ [dir=back, arrowhead=none, arrowtail=diamond, color=red]; |
+ |
+ TransportConnectJob -> TransportConnectJobHelper |
+ [dir=back, arrowhead=none, arrowtail=diamond]; |
+ |
+ TransportClientSocketPool -> ClientSocketPool |
+ [dir=both, arrowhead=empty, arrowtail=none]; |
+ |
+ TransportClientSocketPool -> ClientSocketPoolBase |
+ [dir=back, arrowhead=none, arrowtail=diamond, |
+ label="TransportSocketParams"]; |
+ ClientSocketPoolBaseHelper_ConnectJobFactory -> ConnectJob [arrowhead=veevee]; |
+ ClientSocketPoolBase_ConnectJobFactory -> ConnectJob [arrowhead=veevee]; |
+ |
+ ConnectJob -> ConnectJob_Delegate |
+ [dir=back, arrowhead=none, arrowtail=odiamond]; |
+ |
+} |
+ |