blob: fb4efb6060716b0b74e307c2a3009f8c5324f08d [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.34.0 (20130907.0228)
-->
<!-- Title: SocketPools Pages: 1 -->
<svg width="1612pt" height="653pt"
viewBox="0.00 0.00 1612.00 653.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 649)">
<title>SocketPools</title>
<polygon fill="white" stroke="white" points="-4,4 -4,-649 1608,-649 1608,4 -4,4"/>
<g id="clust1" class="cluster"><title>cluster_legend</title>
<polygon fill="none" stroke="black" points="8,-440 8,-637 743,-637 743,-440 8,-440"/>
<text text-anchor="middle" x="375.5" y="-621.8" font-family="Times,serif" font-size="14.00">Legend</text>
</g>
<!-- BaseClass -->
<g id="node1" class="node"><title>BaseClass</title>
<ellipse fill="none" stroke="black" cx="687" cy="-466" rx="48.1437" ry="18"/>
<text text-anchor="middle" x="687" y="-462.3" font-family="Times,serif" font-size="14.00">BaseClass</text>
</g>
<!-- SubClass -->
<g id="node2" class="node"><title>SubClass</title>
<ellipse fill="none" stroke="black" cx="673" cy="-588" rx="61.6163" ry="18"/>
<text text-anchor="middle" x="673" y="-584.3" font-family="Times,serif" font-size="14.00">Derived Class</text>
</g>
<!-- SubClass&#45;&gt;BaseClass -->
<g id="edge1" class="edge"><title>SubClass&#45;&gt;BaseClass</title>
<path fill="none" stroke="black" d="M675.006,-569.807C677.303,-550.114 681.099,-517.583 683.805,-494.39"/>
<polygon fill="none" stroke="black" points="687.315,-494.499 684.998,-484.161 680.363,-493.688 687.315,-494.499"/>
</g>
<!-- Interface -->
<g id="node7" class="node"><title>Interface</title>
<ellipse fill="none" stroke="black" stroke-dasharray="5,2" cx="552" cy="-466" rx="68.3417" ry="18"/>
<text text-anchor="middle" x="552" y="-462.3" font-family="Times,serif" font-size="14.00">Interface / ABC</text>
</g>
<!-- SubClass&#45;&gt;Interface -->
<g id="edge2" class="edge"><title>SubClass&#45;&gt;Interface</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M656.175,-570.315C635.316,-549.627 599.623,-514.23 575.922,-490.724"/>
<polygon fill="none" stroke="black" points="578.247,-488.1 568.682,-483.544 573.317,-493.071 578.247,-488.1"/>
</g>
<!-- Whole -->
<g id="node3" class="node"><title>Whole</title>
<ellipse fill="none" stroke="black" cx="430" cy="-466" rx="35.1455" ry="18"/>
<text text-anchor="middle" x="430" y="-462.3" font-family="Times,serif" font-size="14.00">Whole</text>
</g>
<!-- Part -->
<g id="node4" class="node"><title>Part</title>
<ellipse fill="none" stroke="black" cx="409" cy="-588" rx="27" ry="18"/>
<text text-anchor="middle" x="409" y="-584.3" font-family="Times,serif" font-size="14.00">Part</text>
</g>
<!-- Part&#45;&gt;Whole -->
<g id="edge3" class="edge"><title>Part&#45;&gt;Whole</title>
<path fill="none" stroke="black" d="M411.964,-570.061C415.322,-550.874 420.853,-519.267 424.906,-496.107"/>
<polygon fill="black" stroke="black" points="424.914,-496.061 422.008,-489.462 426.983,-484.241 429.889,-490.841 424.914,-496.061"/>
<text text-anchor="middle" x="450.5" y="-533.3" font-family="Times,serif" font-size="14.00">ownership</text>
</g>
<!-- Part&#45;&gt;Whole -->
<g id="edge4" class="edge"><title>Part&#45;&gt;Whole</title>
<path fill="none" stroke="black" d="M390.377,-574.55C383.219,-568.652 375.847,-560.934 372,-552 366.727,-539.754 366.735,-534.25 372,-522 377.706,-508.725 388.366,-497.15 399.005,-488.088"/>
<polygon fill="none" stroke="black" points="399.207,-487.929 401.44,-481.072 408.628,-480.496 406.395,-487.353 399.207,-487.929"/>
<text text-anchor="middle" x="392" y="-533.3" font-family="Times,serif" font-size="14.00">pointer</text>
</g>
<!-- A -->
<g id="node5" class="node"><title>A</title>
<ellipse fill="none" stroke="black" cx="137" cy="-588" rx="27" ry="18"/>
<text text-anchor="middle" x="137" y="-584.3" font-family="Times,serif" font-size="14.00">A</text>
</g>
<!-- B -->
<g id="node6" class="node"><title>B</title>
<ellipse fill="none" stroke="black" cx="137" cy="-466" rx="27" ry="18"/>
<text text-anchor="middle" x="137" y="-462.3" font-family="Times,serif" font-size="14.00">B</text>
</g>
<!-- A&#45;&gt;B -->
<g id="edge6" class="edge"><title>A&#45;&gt;B</title>
<path fill="none" stroke="black" d="M137,-569.807C137,-548.599 137,-512.502 137,-489.213"/>
<polyline fill="none" stroke="black" points="137,-484.161 137,-489.161 "/>
<text text-anchor="middle" x="168.5" y="-533.3" font-family="Times,serif" font-size="14.00">association</text>
<text text-anchor="middle" x="127" y="-487.961" font-family="Times,serif" font-size="14.00">?..?</text>
<text text-anchor="middle" x="127" y="-558.607" font-family="Times,serif" font-size="14.00">?..?</text>
</g>
<!-- template_class -->
<g id="node8" class="node"><title>template_class</title>
<polygon fill="none" stroke="black" points="273,-606 182.505,-588 273,-570 363.495,-588 273,-606"/>
<text text-anchor="middle" x="273" y="-584.3" font-family="Times,serif" font-size="14.00">template_class</text>
</g>
<!-- RefCountedPart -->
<g id="node9" class="node"><title>RefCountedPart</title>
<ellipse fill="none" stroke="black" cx="524" cy="-588" rx="69.3156" ry="18"/>
<text text-anchor="middle" x="524" y="-584.3" font-family="Times,serif" font-size="14.00">RefCountedPart</text>
</g>
<!-- RefCountedPart&#45;&gt;Whole -->
<g id="edge5" class="edge"><title>RefCountedPart&#45;&gt;Whole</title>
<path fill="none" stroke="red" d="M514.948,-570.026C507.41,-556.495 496.003,-537.34 484,-522 475.376,-510.979 464.787,-499.783 455.277,-490.396"/>
<polygon fill="red" stroke="red" points="455.225,-490.346 448.13,-489.058 446.589,-482.014 453.684,-483.301 455.225,-490.346"/>
<text text-anchor="middle" x="534.5" y="-540.8" font-family="Times,serif" font-size="14.00">partial</text>
<text text-anchor="middle" x="534.5" y="-525.8" font-family="Times,serif" font-size="14.00">ownership</text>
</g>
<!-- Factory -->
<g id="node10" class="node"><title>Factory</title>
<ellipse fill="none" stroke="black" cx="54" cy="-588" rx="38.0212" ry="18"/>
<text text-anchor="middle" x="54" y="-584.3" font-family="Times,serif" font-size="14.00">Factory</text>
</g>
<!-- object -->
<g id="node11" class="node"><title>object</title>
<ellipse fill="none" stroke="black" cx="54" cy="-466" rx="33.2209" ry="18"/>
<text text-anchor="middle" x="54" y="-462.3" font-family="Times,serif" font-size="14.00">object</text>
</g>
<!-- Factory&#45;&gt;object -->
<g id="edge7" class="edge"><title>Factory&#45;&gt;object</title>
<path fill="none" stroke="black" d="M54,-569.807C54,-552.787 54,-526.178 54,-504.296"/>
<polygon fill="black" stroke="black" points="54,-484.161 58.5,-494.161 54,-489.161 54,-494.161 54,-494.161 54,-494.161 54,-489.161 49.5,-494.161 54,-484.161 54,-484.161"/>
<polygon fill="black" stroke="black" points="54,-494.161 58.5001,-504.161 54.0001,-499.161 54.0001,-504.161 54.0001,-504.161 54.0001,-504.161 54.0001,-499.161 49.5001,-504.161 54,-494.161 54,-494.161"/>
</g>
<!-- ClientSocketPoolBase -->
<g id="node12" class="node"><title>ClientSocketPoolBase</title>
<polygon fill="none" stroke="black" points="888,-606 757.72,-588 888,-570 1018.28,-588 888,-606"/>
<text text-anchor="middle" x="888" y="-584.3" font-family="Times,serif" font-size="14.00">ClientSocketPoolBase</text>
</g>
<!-- TransportClientSocketPool -->
<g id="node31" class="node"><title>TransportClientSocketPool</title>
<ellipse fill="none" stroke="black" cx="901" cy="-466" rx="109.261" ry="18"/>
<text text-anchor="middle" x="901" y="-462.3" font-family="Times,serif" font-size="14.00">TransportClientSocketPool</text>
</g>
<!-- ClientSocketPoolBase&#45;&gt;TransportClientSocketPool -->
<g id="edge18" class="edge"><title>ClientSocketPoolBase&#45;&gt;TransportClientSocketPool</title>
<path fill="none" stroke="black" d="M889.835,-570.061C891.904,-550.962 895.306,-519.56 897.812,-496.429"/>
<polygon fill="black" stroke="black" points="897.84,-496.171 894.509,-489.775 899.132,-484.241 902.463,-490.637 897.84,-496.171"/>
<text text-anchor="middle" x="961" y="-533.3" font-family="Times,serif" font-size="14.00">TransportSocketParams</text>
</g>
<!-- ClientSocketPoolBaseHelper -->
<g id="node13" class="node"><title>ClientSocketPoolBaseHelper</title>
<ellipse fill="none" stroke="black" cx="930" cy="-166" rx="116.484" ry="18"/>
<text text-anchor="middle" x="930" y="-162.3" font-family="Times,serif" font-size="14.00">ClientSocketPoolBaseHelper</text>
</g>
<!-- ClientSocketPoolBaseHelper&#45;&gt;ClientSocketPoolBase -->
<g id="edge17" class="edge"><title>ClientSocketPoolBaseHelper&#45;&gt;ClientSocketPoolBase</title>
<path fill="none" stroke="black" d="M841.61,-177.778C801.552,-188.118 763,-208.365 763,-248 763,-467 763,-467 763,-467 763,-514.437 810.427,-548.965 846.854,-568.488"/>
<polygon fill="black" stroke="black" points="847.06,-568.593 854.224,-567.768 857.741,-574.063 850.577,-574.888 847.06,-568.593"/>
</g>
<!-- ConnectJob_Delegate -->
<g id="node21" class="node"><title>ConnectJob_Delegate</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="1302" cy="-92" rx="90.4879" ry="18"/>
<text text-anchor="middle" x="1302" y="-88.3" font-family="Times,serif" font-size="14.00">ConnectJob::Delegate</text>
</g>
<!-- ClientSocketPoolBaseHelper&#45;&gt;ConnectJob_Delegate -->
<g id="edge10" class="edge"><title>ClientSocketPoolBaseHelper&#45;&gt;ConnectJob_Delegate</title>
<path fill="none" stroke="black" d="M999.534,-151.542C1065.14,-138.843 1163.1,-119.884 1229.62,-107.008"/>
<polygon fill="none" stroke="black" points="1230.46,-110.412 1239.61,-105.075 1229.13,-103.539 1230.46,-110.412"/>
</g>
<!-- ClientSocketPoolBaseHelper_ConnectJobFactory -->
<g id="node14" class="node"><title>ClientSocketPoolBaseHelper_ConnectJobFactory</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="1104" cy="-249" rx="132.404" ry="26.7407"/>
<text text-anchor="middle" x="1104" y="-252.8" font-family="Times,serif" font-size="14.00">ClientSocketPoolBaseHelper::</text>
<text text-anchor="middle" x="1104" y="-237.8" font-family="Times,serif" font-size="14.00">ConnectJobFactory</text>
</g>
<!-- ClientSocketPoolBaseHelper_ConnectJobFactory&#45;&gt;ClientSocketPoolBaseHelper -->
<g id="edge20" class="edge"><title>ClientSocketPoolBaseHelper_ConnectJobFactory&#45;&gt;ClientSocketPoolBaseHelper</title>
<path fill="none" stroke="black" d="M1052.74,-224.135C1028.44,-212.826 999.648,-199.422 976.057,-188.44"/>
<polygon fill="black" stroke="black" points="975.816,-188.328 968.688,-189.422 964.937,-183.264 972.064,-182.17 975.816,-188.328"/>
</g>
<!-- ConnectJob -->
<g id="node20" class="node"><title>ConnectJob</title>
<ellipse fill="none" stroke="black" stroke-dasharray="5,2" cx="1491" cy="-249" rx="53.4184" ry="18"/>
<text text-anchor="middle" x="1491" y="-245.3" font-family="Times,serif" font-size="14.00">ConnectJob</text>
</g>
<!-- ClientSocketPoolBaseHelper_ConnectJobFactory&#45;&gt;ConnectJob -->
<g id="edge27" class="edge"><title>ClientSocketPoolBaseHelper_ConnectJobFactory&#45;&gt;ConnectJob</title>
<path fill="none" stroke="black" d="M1164.57,-272.905C1228.79,-294.786 1332.66,-320.226 1419,-295 1431.5,-291.349 1443.89,-284.795 1454.78,-277.757"/>
<polygon fill="black" stroke="black" points="1471.44,-265.884 1465.9,-275.352 1467.36,-268.786 1463.29,-271.687 1463.29,-271.687 1463.29,-271.687 1467.36,-268.786 1460.68,-268.023 1471.44,-265.884 1471.44,-265.884"/>
<polygon fill="black" stroke="black" points="1463.29,-271.687 1457.76,-281.156 1459.22,-274.589 1455.15,-277.491 1455.15,-277.491 1455.15,-277.491 1459.22,-274.589 1452.54,-273.827 1463.29,-271.687 1463.29,-271.687"/>
</g>
<!-- ClientSocketPoolBase_ConnectJobFactory -->
<g id="node15" class="node"><title>ClientSocketPoolBase_ConnectJobFactory</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="1194,-504 1045,-466 1194,-428 1343,-466 1194,-504"/>
<text text-anchor="middle" x="1194" y="-469.8" font-family="Times,serif" font-size="14.00">ClientSocketPoolBase::</text>
<text text-anchor="middle" x="1194" y="-454.8" font-family="Times,serif" font-size="14.00">ConnectJobFactory</text>
</g>
<!-- ClientSocketPoolBase_ConnectJobFactoryAdaptor -->
<g id="node16" class="node"><title>ClientSocketPoolBase_ConnectJobFactoryAdaptor</title>
<polygon fill="none" stroke="black" points="1146,-390 975,-352 1146,-314 1317,-352 1146,-390"/>
<text text-anchor="middle" x="1146" y="-355.8" font-family="Times,serif" font-size="14.00">ClientSocketPoolBase::</text>
<text text-anchor="middle" x="1146" y="-340.8" font-family="Times,serif" font-size="14.00">ConnectJobFactoryAdaptor</text>
</g>
<!-- ClientSocketPoolBase_ConnectJobFactory&#45;&gt;ClientSocketPoolBase_ConnectJobFactoryAdaptor -->
<g id="edge19" class="edge"><title>ClientSocketPoolBase_ConnectJobFactory&#45;&gt;ClientSocketPoolBase_ConnectJobFactoryAdaptor</title>
<path fill="none" stroke="black" d="M1179.6,-431.396C1175.13,-420.971 1170.13,-409.306 1165.38,-398.226"/>
<polygon fill="black" stroke="black" points="1165.28,-397.997 1159.24,-394.058 1160.56,-386.967 1166.6,-390.906 1165.28,-397.997"/>
</g>
<!-- ClientSocketPoolBase_ConnectJobFactory&#45;&gt;ConnectJob -->
<g id="edge28" class="edge"><title>ClientSocketPoolBase_ConnectJobFactory&#45;&gt;ConnectJob</title>
<path fill="none" stroke="black" d="M1245.4,-440.879C1270.92,-427.675 1301.46,-409.949 1326,-390 1360.94,-361.599 1358.95,-343.467 1393,-314 1409.54,-299.689 1429.49,-286.1 1447.06,-275.155"/>
<polygon fill="black" stroke="black" points="1464.27,-264.787 1458.03,-273.802 1459.99,-267.368 1455.7,-269.948 1455.7,-269.948 1455.7,-269.948 1459.99,-267.368 1453.38,-266.093 1464.27,-264.787 1464.27,-264.787"/>
<polygon fill="black" stroke="black" points="1455.7,-269.948 1449.46,-278.963 1451.42,-272.528 1447.14,-275.108 1447.14,-275.108 1447.14,-275.108 1451.42,-272.528 1444.82,-271.254 1455.7,-269.948 1455.7,-269.948"/>
</g>
<!-- ClientSocketPoolBase_ConnectJobFactoryAdaptor&#45;&gt;ClientSocketPoolBaseHelper_ConnectJobFactory -->
<g id="edge12" class="edge"><title>ClientSocketPoolBase_ConnectJobFactoryAdaptor&#45;&gt;ClientSocketPoolBaseHelper_ConnectJobFactory</title>
<path fill="none" stroke="black" d="M1131.9,-317.087C1127.67,-306.925 1123.03,-295.755 1118.76,-285.494"/>
<polygon fill="none" stroke="black" points="1121.88,-283.886 1114.81,-275.997 1115.42,-286.574 1121.88,-283.886"/>
</g>
<!-- HigherLayeredPool -->
<g id="node17" class="node"><title>HigherLayeredPool</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="1337" cy="-249" rx="82.3139" ry="18"/>
<text text-anchor="middle" x="1337" y="-245.3" font-family="Times,serif" font-size="14.00">HigherLayeredPool</text>
</g>
<!-- HigherLayeredPool&#45;&gt;ClientSocketPoolBaseHelper -->
<g id="edge24" class="edge"><title>HigherLayeredPool&#45;&gt;ClientSocketPoolBaseHelper</title>
<path fill="none" stroke="black" d="M1290.91,-233.974C1276.31,-229.8 1260.05,-225.431 1245,-222 1171.14,-205.162 1086.52,-190.648 1023.6,-180.764"/>
<polygon fill="none" stroke="black" points="1023.57,-180.759 1017.02,-183.788 1011.71,-178.911 1018.26,-175.883 1023.57,-180.759"/>
<text text-anchor="middle" x="1286.91" y="-222.774" font-family="Times,serif" font-size="14.00">*</text>
</g>
<!-- LowerLayeredPool -->
<g id="node18" class="node"><title>LowerLayeredPool</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="872" cy="-249" rx="81.3646" ry="18"/>
<text text-anchor="middle" x="872" y="-245.3" font-family="Times,serif" font-size="14.00">LowerLayeredPool</text>
</g>
<!-- LowerLayeredPool&#45;&gt;ClientSocketPoolBaseHelper -->
<g id="edge25" class="edge"><title>LowerLayeredPool&#45;&gt;ClientSocketPoolBaseHelper</title>
<path fill="none" stroke="black" d="M884.3,-230.822C891.913,-220.19 901.855,-206.306 910.521,-194.204"/>
<polygon fill="none" stroke="black" points="910.731,-193.91 910.972,-186.703 917.717,-184.153 917.477,-191.36 910.731,-193.91"/>
<text text-anchor="middle" x="880.3" y="-219.622" font-family="Times,serif" font-size="14.00">*</text>
</g>
<!-- ClientSocketPool -->
<g id="node19" class="node"><title>ClientSocketPool</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="879" cy="-352" rx="74.6146" ry="18"/>
<text text-anchor="middle" x="879" y="-348.3" font-family="Times,serif" font-size="14.00">ClientSocketPool</text>
</g>
<!-- ClientSocketPool&#45;&gt;LowerLayeredPool -->
<g id="edge9" class="edge"><title>ClientSocketPool&#45;&gt;LowerLayeredPool</title>
<path fill="none" stroke="black" d="M877.813,-333.867C876.742,-318.414 875.148,-295.416 873.9,-277.409"/>
<polygon fill="none" stroke="black" points="877.376,-276.951 873.193,-267.217 870.393,-277.435 877.376,-276.951"/>
</g>
<!-- ConnectJob&#45;&gt;ConnectJob_Delegate -->
<g id="edge23" class="edge"><title>ConnectJob&#45;&gt;ConnectJob_Delegate</title>
<path fill="none" stroke="black" d="M1461.84,-224.089C1423.16,-192.362 1355.84,-137.158 1322.26,-109.618"/>
<polygon fill="none" stroke="black" points="1462.21,-224.387 1469.38,-225.098 1471.49,-231.996 1464.31,-231.284 1462.21,-224.387"/>
</g>
<!-- ClientSocketFactory -->
<g id="node22" class="node"><title>ClientSocketFactory</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="636" cy="-249" rx="85.19" ry="18"/>
<text text-anchor="middle" x="636" y="-245.3" font-family="Times,serif" font-size="14.00">ClientSocketFactory</text>
</g>
<!-- ClientSocketFactory&#45;&gt;ClientSocketPoolBaseHelper -->
<g id="edge26" class="edge"><title>ClientSocketFactory&#45;&gt;ClientSocketPoolBaseHelper</title>
<path fill="none" stroke="black" d="M669.499,-232.343C691.664,-222.491 721.59,-210.144 749,-202 777.322,-193.585 808.753,-186.688 837.369,-181.308"/>
<polygon fill="none" stroke="black" points="837.64,-181.259 842.821,-176.243 849.444,-179.096 844.263,-184.112 837.64,-181.259"/>
</g>
<!-- TCPClientSocket -->
<g id="node24" class="node"><title>TCPClientSocket</title>
<ellipse fill="none" stroke="black" cx="636" cy="-166" rx="74.6146" ry="18"/>
<text text-anchor="middle" x="636" y="-162.3" font-family="Times,serif" font-size="14.00">TCPClientSocket</text>
</g>
<!-- ClientSocketFactory&#45;&gt;TCPClientSocket -->
<g id="edge29" class="edge"><title>ClientSocketFactory&#45;&gt;TCPClientSocket</title>
<path fill="none" stroke="black" d="M636,-230.822C636,-223.09 636,-213.637 636,-204.401"/>
<polygon fill="black" stroke="black" points="636,-184.153 640.5,-194.153 636,-189.153 636,-194.153 636,-194.153 636,-194.153 636,-189.153 631.5,-194.153 636,-184.153 636,-184.153"/>
<polygon fill="black" stroke="black" points="636,-194.153 640.5,-204.153 636,-199.153 636,-204.153 636,-204.153 636,-204.153 636,-199.153 631.5,-204.153 636,-194.153 636,-194.153"/>
</g>
<!-- DefaultClientSocketFactory -->
<g id="node23" class="node"><title>DefaultClientSocketFactory</title>
<ellipse fill="none" stroke="black" cx="622" cy="-352" rx="113.135" ry="18"/>
<text text-anchor="middle" x="622" y="-348.3" font-family="Times,serif" font-size="14.00">DefaultClientSocketFactory</text>
</g>
<!-- DefaultClientSocketFactory&#45;&gt;ClientSocketFactory -->
<g id="edge14" class="edge"><title>DefaultClientSocketFactory&#45;&gt;ClientSocketFactory</title>
<path fill="none" stroke="black" d="M624.375,-333.867C626.527,-318.341 629.735,-295.2 632.236,-277.156"/>
<polygon fill="none" stroke="black" points="635.707,-277.603 633.613,-267.217 628.773,-276.642 635.707,-277.603"/>
</g>
<!-- StreamSocket -->
<g id="node25" class="node"><title>StreamSocket</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="636" cy="-92" rx="61.1419" ry="18"/>
<text text-anchor="middle" x="636" y="-88.3" font-family="Times,serif" font-size="14.00">StreamSocket</text>
</g>
<!-- TCPClientSocket&#45;&gt;StreamSocket -->
<g id="edge16" class="edge"><title>TCPClientSocket&#45;&gt;StreamSocket</title>
<path fill="none" stroke="black" d="M636,-147.937C636,-139.807 636,-129.876 636,-120.705"/>
<polygon fill="none" stroke="black" points="639.5,-120.441 636,-110.441 632.5,-120.441 639.5,-120.441"/>
</g>
<!-- Socket -->
<g id="node26" class="node"><title>Socket</title>
<ellipse fill="none" stroke="black" cx="636" cy="-18" rx="35.6194" ry="18"/>
<text text-anchor="middle" x="636" y="-14.3" font-family="Times,serif" font-size="14.00">Socket</text>
</g>
<!-- StreamSocket&#45;&gt;Socket -->
<g id="edge15" class="edge"><title>StreamSocket&#45;&gt;Socket</title>
<path fill="none" stroke="black" d="M636,-73.937C636,-65.8072 636,-55.8761 636,-46.7047"/>
<polygon fill="none" stroke="black" points="639.5,-46.4406 636,-36.4407 632.5,-46.4407 639.5,-46.4406"/>
</g>
<!-- TransportSocketParams -->
<g id="node27" class="node"><title>TransportSocketParams</title>
<ellipse fill="none" stroke="black" cx="1491" cy="-588" rx="97.237" ry="18"/>
<text text-anchor="middle" x="1491" y="-584.3" font-family="Times,serif" font-size="14.00">TransportSocketParams</text>
</g>
<!-- TransportConnectJobHelper -->
<g id="node28" class="node"><title>TransportConnectJobHelper</title>
<ellipse fill="none" stroke="black" cx="1491" cy="-466" rx="113.61" ry="18"/>
<text text-anchor="middle" x="1491" y="-462.3" font-family="Times,serif" font-size="14.00">TransportConnectJobHelper</text>
</g>
<!-- TransportSocketParams&#45;&gt;TransportConnectJobHelper -->
<g id="edge22" class="edge"><title>TransportSocketParams&#45;&gt;TransportConnectJobHelper</title>
<path fill="none" stroke="red" d="M1491,-569.807C1491,-550.648 1491,-519.34 1491,-496.299"/>
<polygon fill="red" stroke="red" points="1491,-496.161 1487,-490.161 1491,-484.161 1495,-490.161 1491,-496.161"/>
</g>
<!-- TransportConnectJob -->
<g id="node30" class="node"><title>TransportConnectJob</title>
<ellipse fill="none" stroke="black" cx="1491" cy="-352" rx="89.0632" ry="18"/>
<text text-anchor="middle" x="1491" y="-348.3" font-family="Times,serif" font-size="14.00">TransportConnectJob</text>
</g>
<!-- TransportConnectJobHelper&#45;&gt;TransportConnectJob -->
<g id="edge21" class="edge"><title>TransportConnectJobHelper&#45;&gt;TransportConnectJob</title>
<path fill="none" stroke="black" d="M1491,-447.99C1491,-430.557 1491,-403.116 1491,-382.202"/>
<polygon fill="black" stroke="black" points="1491,-382.17 1487,-376.171 1491,-370.17 1495,-376.17 1491,-382.17"/>
</g>
<!-- TransportConnectJobFactory -->
<g id="node29" class="node"><title>TransportConnectJobFactory</title>
<ellipse fill="none" stroke="black" cx="1194" cy="-588" rx="116.484" ry="18"/>
<text text-anchor="middle" x="1194" y="-584.3" font-family="Times,serif" font-size="14.00">TransportConnectJobFactory</text>
</g>
<!-- TransportConnectJobFactory&#45;&gt;ClientSocketPoolBase_ConnectJobFactory -->
<g id="edge11" class="edge"><title>TransportConnectJobFactory&#45;&gt;ClientSocketPoolBase_ConnectJobFactory</title>
<path fill="none" stroke="black" d="M1194,-569.807C1194,-555.293 1194,-533.805 1194,-514.222"/>
<polygon fill="none" stroke="black" points="1197.5,-514.202 1194,-504.202 1190.5,-514.202 1197.5,-514.202"/>
<text text-anchor="middle" x="1261" y="-533.3" font-family="Times,serif" font-size="14.00">TransportSocketParams</text>
</g>
<!-- TransportConnectJob&#45;&gt;ConnectJob -->
<g id="edge13" class="edge"><title>TransportConnectJob&#45;&gt;ConnectJob</title>
<path fill="none" stroke="black" d="M1491,-333.867C1491,-318.414 1491,-295.416 1491,-277.409"/>
<polygon fill="none" stroke="black" points="1494.5,-277.217 1491,-267.217 1487.5,-277.217 1494.5,-277.217"/>
</g>
<!-- TransportClientSocketPool&#45;&gt;ClientSocketPool -->
<g id="edge8" class="edge"><title>TransportClientSocketPool&#45;&gt;ClientSocketPool</title>
<path fill="none" stroke="black" d="M897.659,-447.99C894.121,-429.981 888.486,-401.293 884.333,-380.152"/>
<polygon fill="none" stroke="black" points="887.735,-379.308 882.373,-370.17 880.866,-380.658 887.735,-379.308"/>
</g>
</g>
</svg>