Projet_JAVA_P2P_STRI2A/doc/1.1/classdiagram-Page-2-1.1.svg

3 lines
37 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1961px" height="1315px" viewBox="-0.5 -0.5 1961 1315" content="&lt;mxfile host=&quot;www.draw.io&quot; modified=&quot;2020-01-29T13:21:26.816Z&quot; agent=&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Safari/605.1.15&quot; etag=&quot;4HfZLJRcm86ykFNam2pk&quot; version=&quot;12.6.1&quot; type=&quot;device&quot; pages=&quot;2&quot;&gt;&lt;diagram id=&quot;MxademQTiYvtQCVb_gz8&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;diagram id=&quot;Nmcg78wJzheiyKvJY45I&quot; name=&quot;Page-2&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs><clipPath id="mx-clip-1484-761-472-44-0"><rect x="1484" y="761" width="472" height="44"/></clipPath><clipPath id="mx-clip-1484-813-472-52-0"><rect x="1484" y="813" width="472" height="52"/></clipPath><clipPath id="mx-clip-4-274-472-84-0"><rect x="4" y="274" width="472" height="84"/></clipPath><clipPath id="mx-clip-4-388-472-240-0"><rect x="4" y="388" width="472" height="240"/></clipPath><clipPath id="mx-clip-1307-929-322-96-0"><rect x="1307" y="929" width="322" height="96"/></clipPath><clipPath id="mx-clip-744-711-522-54-0"><rect x="744" y="711" width="522" height="54"/></clipPath><clipPath id="mx-clip-744-773-522-152-0"><rect x="744" y="773" width="522" height="152"/></clipPath><clipPath id="mx-clip-1064-1111-382-26-0"><rect x="1064" y="1111" width="382" height="26"/></clipPath><clipPath id="mx-clip-1064-1145-382-90-0"><rect x="1064" y="1145" width="382" height="90"/></clipPath><clipPath id="mx-clip-854-271-662-64-0"><rect x="854" y="271" width="662" height="64"/></clipPath><clipPath id="mx-clip-854-343-662-242-0"><rect x="854" y="343" width="662" height="242"/></clipPath><clipPath id="mx-clip-484-31-662-26-0"><rect x="484" y="31" width="662" height="26"/></clipPath><clipPath id="mx-clip-484-65-662-120-0"><rect x="484" y="65" width="662" height="120"/></clipPath></defs><g><path d="M 770 963.5 L 770 966 L 620 966 L 620 561 L 480.14 561" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 510 950 L 550 950 L 550 964 L 990 964 L 990 1210 L 510 1210 L 510 964 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 510 964 L 550 964" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 947px; margin-left: 512px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; ">remoteException</div></div></div></foreignObject><text x="512" y="947" fill="#000000" font-family="Helvetica" font-size="12px" font-weight="bold">remoteException</text></switch></g><path d="M 300 863.5 L 300 846 L 740 846" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 70 740 L 110 740 L 110 754 L 300 754 L 300 1190 L 70 1190 L 70 754 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 70 754 L 110 754" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 737px; margin-left: 72px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; "><div>exception</div></div></div></div></foreignObject><text x="72" y="737" fill="#000000" font-family="Helvetica" font-size="12px" font-weight="bold">exception</text></switch></g><rect x="90" y="1000" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 1000px; margin-left: 90px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">InternalError</div></div></div></foreignObject><text x="90" y="1012" fill="#000000" font-family="Helvetica" font-size="12px">InternalError</text></switch></g><path d="M 185 1191 L 185 1311 L 1820 1311 L 1820 860" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 185 771 L 185 651 L 185 623" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><rect x="90" y="770" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 770px; margin-left: 90px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">ProtocolError</div></div></div></foreignObject><text x="90" y="782" fill="#000000" font-family="Helvetica" font-size="12px">ProtocolError</text></switch></g><rect x="90" y="1080" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 1080px; margin-left: 90px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">SizeError</div></div></div></foreignObject><text x="90" y="1092" fill="#000000" font-family="Helvetica" font-size="12px">SizeError</text></switch></g><rect x="90" y="840" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 840px; margin-left: 90px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">TransmissionError</div></div></div></foreignObject><text x="90" y="852" fill="#000000" font-family="Helvetica" font-size="12px">TransmissionError</text></switch></g><rect x="90" y="920" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 920px; margin-left: 90px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">VersionError</div></div></div></foreignObject><text x="90" y="932" fill="#000000" font-family="Helvetica" font-size="12px">VersionError</text></switch></g><rect x="540" y="980" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 980px; margin-left: 540px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; "><div>EmptyDirectory</div></div></div></div></foreignObject><text x="540" y="992" fill="#000000" font-family="Helvetica" font-size="12px">EmptyDirectory</text></switch></g><rect x="540" y="1050" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 1050px; margin-left: 540px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">EmptyFile</div></div></div></foreignObject><text x="540" y="1062" fill="#000000" font-family="Helvetica" font-size="12px">EmptyFile</text></switch></g><rect x="540" y="1130" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 1130px; margin-left: 540px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">InternalRemoteError</div></div></div></foreignObject><text x="540" y="1142" fill="#000000" font-family="Helvetica" font-size="12px">InternalRemoteError</text></switch></g><rect x="750" y="1130" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 1130px; margin-left: 750px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">NotFound</div></div></div></foreignObject><text x="750" y="1142" fill="#000000" font-family="Helvetica" font-size="12px">NotFound</text></switch></g><rect x="750" y="1050" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 1050px; margin-left: 750px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">ProtocolRemoteError</div></div></div></foreignObject><text x="750" y="1062" fill="#000000" font-family="Helvetica" font-size="12px">ProtocolRemoteError</text></switch></g><rect x="750" y="980" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 190px; height: 60px; padding-top: 980px; margin-left: 750px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 190px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">VersionRemoteError</div></div></div></foreignObject><text x="750" y="992" fill="#000000" font-family="Helvetica" font-size="12px">VersionRemoteError</text></switch></g><rect x="1770" y="620" width="140" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 140px; height: 60px; padding-top: 620px; margin-left: 1770px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 140px; height: 60px; overflow: hidden; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap; ">CodeType</div></div></div></foreignObject><text x="1770" y="632" fill="#000000" font-family="Helvetica" font-size="12px">CodeType</text></switch></g><path d="M 1720 730 L 1720 180 L 740 180 L 610 181" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1730 860 L 1730 1118.5 L 1450 1118.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1480 756 L 1480 730 L 1960 730 L 1960 756" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1480 756 L 1480 860 L 1960 860 L 1960 756" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1480 756 L 1960 756" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px"><text x="1719.5" y="747.5">RequestResponseCode</text></g><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-1484-761-472-44-0)" font-size="12px"><text x="1485.5" y="773.5">+ final CodeType codeType</text><text x="1485.5" y="787.5">~ final static int RRCODE_POSITION = 1;</text></g><path d="M 1480 804 L 1960 804" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-1484-813-472-52-0)" font-size="12px"><text x="1485.5" y="825.5">- RequestResponseCode (CodeType codeType, byte codeValue)</text><text x="1485.5" y="839.5">~ static RequestResponseCode fromCode(byte code) throws ProtocolError</text></g><path d="M 480 503.5 L 710 503.5 L 710 733.5 L 740 733.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0.14 269 L 0.14 243 L 480.14 243 L 480.14 269" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0.14 269 L 0.14 623 L 480.14 623 L 480.14 269" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0.14 269 L 480.14 269" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px"><text x="239.64" y="260.5">ProtocolP2PDatagram</text></g><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-4-274-472-84-0)" font-size="12px"><text x="5.64" y="286.5">- final static byte PROTOCOL_VERSION = 0x11</text><text x="5.64" y="300.5">- final static int VERSION_POSITON = 0</text><text x="5.64" y="314.5">- byte version</text><text x="5.64" y="328.5">- Payload payload</text><text x="5.64" y="342.5">- InetAddress hostR</text><text x="5.64" y="356.5">- int portR</text></g><path d="M 0.14 368 L 480.14 368" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-4-388-472-240-0)" font-size="12px"><text x="5.64" y="400.5">+ ProtocolP2PDatagram(Payload payload)</text><text x="5.64" y="414.5">+ void send(DatagramSocket socket, String host, int port)</text><text x="5.64" y="428.5">throws InternalError, UnknownHostException,</text><text x="5.64" y="442.5">IOException</text><text x="5.64" y="456.5">+ void send(DatagramSocket socket,</text><text x="5.64" y="470.5">ProtocolP2PDatagram received) throws InternalError,</text><text x="5.64" y="484.5">IOException</text><text x="5.64" y="498.5">~ void sendResponse(DatagramSocket socket,</text><text x="5.64" y="512.5">InetAddress host, int port) throws InternalError,</text><text x="5.64" y="526.5">IOException</text><text x="5.64" y="540.5">+ static ProtocolP2PDatagram receive(DatagramSocket socket)</text><text x="5.64" y="554.5">throws EmptyFile, NotFound, EmptyDirectory, InternalRemoteError,</text><text x="5.64" y="568.5">VersionRemoteError, ProtocolRemoteError, TransmissionError,</text><text x="5.64" y="582.5">ProtocolError, VersionError, InternalError, SizeError, IOException</text></g><path d="M 1435 890 L 1435 851 L 1270 851" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1303.14 916 L 1303.14 890 L 1633.28 890 L 1633.28 916" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1303.14 916 L 1303.14 1020 L 1633.28 1020 L 1633.28 916" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1303.14 916 L 1633.28 916" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px"><text x="1467.71" y="907.5">BytesArraysTools</text></g><path d="M 1303.14 920 L 1633.28 920" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-1307-929-322-96-0)" font-size="12px"><text x="1308.64" y="941.5">+ static void write(byte[] array, int start, int value)</text><text x="1308.64" y="955.5">+ static void write(byte[] array, int start, long value)</text><text x="1308.64" y="969.5">+ static int readInt(byte[], int start)</text><text x="1308.64" y="983.5">+ static long readLong(byte[], int start)</text></g><path d="M 740 706 L 740 680 L 1270 680 L 1270 706" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 740 706 L 740 920 L 1270 920 L 1270 706" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 740 706 L 1270 706" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px"><text x="1004.5" y="697.5">Payload</text></g><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-744-711-522-54-0)" font-size="12px"><text x="745.5" y="723.5">~ RequestResponseCode requestResponseCode</text><text x="745.5" y="737.5">~ final static int PAYLOAD_SIZE_POSITION = 4</text><text x="745.5" y="751.5">~ final static int PAYLOAD_START_POSITION = 8;</text></g><path d="M 740 764 L 1270 764" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-744-773-522-152-0)" font-size="12px"><text x="745.5" y="785.5">+Payload(RequestResponseCode requestResponseCode) throws InternalError</text><text x="745.5" y="799.5">~ Payload(byte[] datagram) throws SizeError, ProtocolError, InternalError,</text><text x="745.5" y="813.5">TransmissionError</text><text x="745.5" y="827.5">- void checkRequestResponseCode() throws InternalError</text><text x="745.5" y="841.5">~ protected byte[] toDatagram() throws InternalError</text><text x="745.5" y="855.5">~ static void setPayloadSize(int size, byte[] datagram) throws InternalError</text><text x="745.5" y="869.5">~ static int getPayloadSize(byte[] datagram) throws SizeError</text><text x="745.5" y="883.5">+ RequestResponseCode getRequestResponseCode()</text></g><path d="M 1150 1080 L 1150 941 L 1150 928.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1150 921.12 L 1153.5 928.12 L 1146.5 928.12 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1060 1106 L 1060 1080 L 1450 1080 L 1450 1106" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1060 1106 L 1060 1230 L 1450 1230 L 1450 1106" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1060 1106 L 1450 1106" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px"><text x="1254.5" y="1097.5">LoadRequest</text></g><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-1064-1111-382-26-0)" font-size="12px"><text x="1065.5" y="1123.5">- String filename</text></g><path d="M 1060 1136 L 1450 1136" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-1064-1145-382-90-0)" font-size="12px"><text x="1065.5" y="1157.5">+ LoadRequest(String filename) throws InternalError</text><text x="1065.5" y="1171.5">~ LoadRequest(byte[] datagram) throws TransmissionError,</text><text x="1065.5" y="1185.5">SizeError, ProtocolError, InternalError</text><text x="1065.5" y="1199.5">~ byte[] toDatagram() throws InternalError</text><text x="1065.5" y="1213.5">+ String getFilename()</text></g><path d="M 1137.5 580 L 1137.5 611 L 1137.5 672.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1137.5 679.88 L 1134 672.88 L 1141 672.88 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 850 266 L 850 240 L 1520 240 L 1520 266" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 850 266 L 850 580 L 1520 580 L 1520 266" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 850 266 L 1520 266" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px"><text x="1184.5" y="257.5">FilePart</text></g><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-854-271-662-64-0)" font-size="12px"><text x="855.5" y="283.5">- String filename</text><text x="855.5" y="297.5">- long totalSize</text><text x="855.5" y="311.5">- long offest</text><text x="855.5" y="325.5">- byte[] partialContent</text></g><path d="M 850 334 L 1520 334" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-854-343-662-242-0)" font-size="12px"><text x="855.5" y="355.5">+ FilePart(String filename, long totalSize, long offset, byte[] partialContent) throws InternalError</text><text x="855.5" y="369.5">~ FilePart(byte[] datagram) throws TransmissionError, SizeError, ProtocolError, InternalError</text><text x="855.5" y="383.5">~ byte[] toDatagram() throws InternalError</text><text x="855.5" y="397.5">- void setOffset(byte[] datagram) throws SizeError</text><text x="855.5" y="411.5">- void setTotalSize(byte[] datagram) throws SizeError</text><text x="855.5" y="425.5">- int getFilenameSize(byte[] datagram) throws SizeError, ProtocolError</text><text x="855.5" y="439.5">- void setFilename(byte[] datagram) throws ProtocolError, SizeError, InternalError</text><text x="855.5" y="453.5">- void setPartialContent(byte[] datagram) throws ProtocolError, SizeError</text><text x="855.5" y="467.5">+ byte[] getPartialContent()</text><text x="855.5" y="481.5">+ String getFilename()</text><text x="855.5" y="495.5">+ long getOffset()</text><text x="855.5" y="509.5">+ long getTotalSize()</text></g><path d="M 480.14 26 L 480.14 0 L 1150.14 0 L 1150.14 26" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 480.14 26 L 480.14 180 L 1150.14 180 L 1150.14 26" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 480.14 26 L 1150.14 26" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px"><text x="814.64" y="17.5">FileList</text></g><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-484-31-662-26-0)" font-size="12px"><text x="485.64" y="43.5">- String[] fileList</text></g><path d="M 480.14 56 L 1150.14 56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-484-65-662-120-0)" font-size="12px"><text x="485.64" y="77.5">FileList(String[] fileList) throws InternalError</text><text x="485.64" y="91.5">~ FileList(byte[] datagram) throws TransmissionError, SizeError, ProtocolError, InternalError</text><text x="485.64" y="105.5">~ byte[] toDatagram() throws InternalError</text><text x="485.64" y="119.5">+ String[] getFileList()</text></g><path d="M 810 181 L 810 431 L 810 672.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 810 679.88 L 806.5 672.88 L 813.5 672.88 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 480 503.5 L 480 458.5 L 850 458.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 480.14 131 L 255 131 L 255 238.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 470 623 L 470 1261 L 1260 1261 L 1260 1236" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1480 833.5 L 1480 786 L 1270 786" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1600 731 L 1600 458.5 L 1520 458.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1840 730 L 1840 680" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/></g></svg>