xref: /aosp_15_r20/external/cronet/net/docs/pools.dot (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Workerdigraph SocketPools {
2*6777b538SAndroid Build Coastguard Worker    subgraph cluster_legend {
3*6777b538SAndroid Build Coastguard Worker	label="Legend";
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker	## The following legend is an attempt to match UML notation,
6*6777b538SAndroid Build Coastguard Worker	## except for template_class and Factory->object, which are
7*6777b538SAndroid Build Coastguard Worker	## invented for this diagram.
8*6777b538SAndroid Build Coastguard Worker	BaseClass;
9*6777b538SAndroid Build Coastguard Worker	SubClass [label="Derived Class"];
10*6777b538SAndroid Build Coastguard Worker	Whole;
11*6777b538SAndroid Build Coastguard Worker	Part;
12*6777b538SAndroid Build Coastguard Worker	A;
13*6777b538SAndroid Build Coastguard Worker	B;
14*6777b538SAndroid Build Coastguard Worker	Interface [label="Interface / ABC", style=dashed];
15*6777b538SAndroid Build Coastguard Worker	template_class [shape=diamond]; # Link will name parameter(s)
16*6777b538SAndroid Build Coastguard Worker
17*6777b538SAndroid Build Coastguard Worker	SubClass -> BaseClass [arrowhead="empty"];
18*6777b538SAndroid Build Coastguard Worker	SubClass -> Interface [arrowhead="empty", style=dashed];
19*6777b538SAndroid Build Coastguard Worker	Part -> Whole [arrowhead="diamond", label="ownership"];
20*6777b538SAndroid Build Coastguard Worker	Part -> Whole [arrowhead="odiamond", label="pointer"];
21*6777b538SAndroid Build Coastguard Worker	RefCountedPart -> Whole [arrowhead="diamond", color=red,
22*6777b538SAndroid Build Coastguard Worker		                 label="partial\nownership"];
23*6777b538SAndroid Build Coastguard Worker	A -> B [arrowhead="none", headlabel="?..?", taillabel="?..?",
24*6777b538SAndroid Build Coastguard Worker		label="association"];
25*6777b538SAndroid Build Coastguard Worker	// Often a "subgraph { rank=same; .. }" is used to wrap the
26*6777b538SAndroid Build Coastguard Worker	// below to make the generative relationship distinctive
27*6777b538SAndroid Build Coastguard Worker	// from the other class relationships.
28*6777b538SAndroid Build Coastguard Worker	Factory -> object [arrowhead=veevee];
29*6777b538SAndroid Build Coastguard Worker    };
30*6777b538SAndroid Build Coastguard Worker
31*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBase [shape=diamond];
32*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBaseHelper;
33*6777b538SAndroid Build Coastguard Worker
34*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBaseHelper_ConnectJobFactory
35*6777b538SAndroid Build Coastguard Worker        [style=dotted, label="ClientSocketPoolBaseHelper::\nConnectJobFactory"];
36*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBase_ConnectJobFactory
37*6777b538SAndroid Build Coastguard Worker        [style=dotted, shape=diamond,
38*6777b538SAndroid Build Coastguard Worker	 label="ClientSocketPoolBase::\nConnectJobFactory"];
39*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBase_ConnectJobFactoryAdaptor
40*6777b538SAndroid Build Coastguard Worker        [shape=diamond,
41*6777b538SAndroid Build Coastguard Worker	 label="ClientSocketPoolBase::\nConnectJobFactoryAdaptor"];
42*6777b538SAndroid Build Coastguard Worker
43*6777b538SAndroid Build Coastguard Worker    HigherLayeredPool [style=dotted];
44*6777b538SAndroid Build Coastguard Worker    LowerLayeredPool [style=dotted];
45*6777b538SAndroid Build Coastguard Worker    ClientSocketPool [style=dotted];
46*6777b538SAndroid Build Coastguard Worker
47*6777b538SAndroid Build Coastguard Worker    ConnectJob [style=dashed];
48*6777b538SAndroid Build Coastguard Worker    ConnectJob_Delegate [style=dotted, label="ConnectJob::Delegate"];
49*6777b538SAndroid Build Coastguard Worker
50*6777b538SAndroid Build Coastguard Worker    ClientSocketFactory [style=dotted];
51*6777b538SAndroid Build Coastguard Worker    DefaultClientSocketFactory;
52*6777b538SAndroid Build Coastguard Worker    TCPClientSocket;
53*6777b538SAndroid Build Coastguard Worker    TransportClientSocket [style=dotted]
54*6777b538SAndroid Build Coastguard Worker    StreamSocket [style=dotted]
55*6777b538SAndroid Build Coastguard Worker    Socket;
56*6777b538SAndroid Build Coastguard Worker
57*6777b538SAndroid Build Coastguard Worker    TransportSocketParams;
58*6777b538SAndroid Build Coastguard Worker    TransportConnectJobHelper;
59*6777b538SAndroid Build Coastguard Worker    TransportConnectJobFactory;
60*6777b538SAndroid Build Coastguard Worker    TransportConnectJob;
61*6777b538SAndroid Build Coastguard Worker
62*6777b538SAndroid Build Coastguard Worker    TransportClientSocketPool -> ClientSocketPool [arrowhead=empty];
63*6777b538SAndroid Build Coastguard Worker    ClientSocketPool -> LowerLayeredPool [arrowhead=empty];
64*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBaseHelper -> ConnectJob_Delegate [arrowhead=empty];
65*6777b538SAndroid Build Coastguard Worker    TransportConnectJobFactory -> ClientSocketPoolBase_ConnectJobFactory
66*6777b538SAndroid Build Coastguard Worker        [arrowhead=empty, label="TransportSocketParams"];
67*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBase_ConnectJobFactoryAdaptor ->
68*6777b538SAndroid Build Coastguard Worker        ClientSocketPoolBaseHelper_ConnectJobFactory
69*6777b538SAndroid Build Coastguard Worker 	    [arrowhead=empty, arrowtail=none];
70*6777b538SAndroid Build Coastguard Worker    TransportConnectJob -> ConnectJob [arrowhead=empty];
71*6777b538SAndroid Build Coastguard Worker    DefaultClientSocketFactory -> ClientSocketFactory [arrowhead=empty];
72*6777b538SAndroid Build Coastguard Worker    StreamSocket -> Socket [arrowhead=empty]
73*6777b538SAndroid Build Coastguard Worker    TCPClientSocket -> TransportClientSocket [arrowhead=empty]
74*6777b538SAndroid Build Coastguard Worker    TransportClientSocket -> StreamSocket [arrowhead=empty]
75*6777b538SAndroid Build Coastguard Worker
76*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBaseHelper -> ClientSocketPoolBase [arrowhead=diamond];
77*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBase -> TransportClientSocketPool
78*6777b538SAndroid Build Coastguard Worker        [arrowhead=diamond, label="TransportSocketParams"];
79*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBase_ConnectJobFactory ->
80*6777b538SAndroid Build Coastguard Worker        ClientSocketPoolBase_ConnectJobFactoryAdaptor [arrowhead=diamond];
81*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBaseHelper_ConnectJobFactory ->
82*6777b538SAndroid Build Coastguard Worker        ClientSocketPoolBaseHelper [arrowhead=diamond];
83*6777b538SAndroid Build Coastguard Worker    TransportConnectJobHelper -> TransportConnectJob [arrowhead=diamond];
84*6777b538SAndroid Build Coastguard Worker    TransportSocketParams -> TransportConnectJobHelper
85*6777b538SAndroid Build Coastguard Worker        [arrowhead=diamond, color=red];
86*6777b538SAndroid Build Coastguard Worker
87*6777b538SAndroid Build Coastguard Worker    ConnectJob -> ConnectJob_Delegate
88*6777b538SAndroid Build Coastguard Worker        [dir=back, arrowhead=none, arrowtail=odiamond];
89*6777b538SAndroid Build Coastguard Worker    HigherLayeredPool -> ClientSocketPoolBaseHelper
90*6777b538SAndroid Build Coastguard Worker        [arrowhead=odiamond, taillabel="*"];
91*6777b538SAndroid Build Coastguard Worker    LowerLayeredPool -> ClientSocketPoolBaseHelper
92*6777b538SAndroid Build Coastguard Worker        [arrowhead=odiamond, taillabel="*"];
93*6777b538SAndroid Build Coastguard Worker    ClientSocketFactory -> ClientSocketPoolBaseHelper [arrowhead=odiamond];
94*6777b538SAndroid Build Coastguard Worker
95*6777b538SAndroid Build Coastguard Worker    subgraph {
96*6777b538SAndroid Build Coastguard Worker        rank=same;
97*6777b538SAndroid Build Coastguard Worker        ClientSocketPoolBaseHelper_ConnectJobFactory -> ConnectJob
98*6777b538SAndroid Build Coastguard Worker            [arrowhead=veevee];
99*6777b538SAndroid Build Coastguard Worker    }
100*6777b538SAndroid Build Coastguard Worker    ClientSocketPoolBase_ConnectJobFactory -> ConnectJob [arrowhead=veevee];
101*6777b538SAndroid Build Coastguard Worker    ClientSocketFactory -> TCPClientSocket [arrowhead=veevee]
102*6777b538SAndroid Build Coastguard Worker}
103*6777b538SAndroid Build Coastguard Worker
104