[telepathy-doc/master] Beginning of file transfer
Davyd Madeley
davyd at madeley.id.au
Tue Apr 7 02:05:56 PDT 2009
---
docs/book/.gitignore | 1 +
docs/book/C/figures/src/file-transfer-actors.svg | 1075 ++++++++++++++++++++++
docs/book/C/filetransfer.xml | 136 +++
docs/book/Makefile.am | 3 +-
4 files changed, 1214 insertions(+), 1 deletions(-)
create mode 100644 docs/book/C/figures/src/file-transfer-actors.svg
diff --git a/docs/book/.gitignore b/docs/book/.gitignore
index 1a04288..c458c7a 100644
--- a/docs/book/.gitignore
+++ b/docs/book/.gitignore
@@ -6,3 +6,4 @@ C/figures/bus-conceptual.png
C/figures/bus-hierarchy-conceptual.png
C/figures/contactlist-flowchart.png
C/figures/telepathy-glib-type-unpacked.png
+C/figures/file-transfer-actors.png
diff --git a/docs/book/C/figures/src/file-transfer-actors.svg b/docs/book/C/figures/src/file-transfer-actors.svg
new file mode 100644
index 0000000..2c0d2d2
--- /dev/null
+++ b/docs/book/C/figures/src/file-transfer-actors.svg
@@ -0,0 +1,1075 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="490"
+ height="590"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="file-transfer-actors.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.863823,0,61.154158)"
+ r="44.373123"
+ fy="469.90775"
+ fx="487.5144"
+ cy="469.90775"
+ cx="487.5144"
+ id="radialGradient3176"
+ xlink:href="#linearGradient3170"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3129594,0.123287,-6.4540871e-2,0.6873359,-126.48846,57.10022)"
+ r="50.593483"
+ fy="383.86594"
+ fx="489.3262"
+ cy="383.86594"
+ cx="489.3262"
+ id="radialGradient3168"
+ xlink:href="#linearGradient3162"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientTransform="matrix(1.0153728,-0.3575649,0.2655209,0.6048249,-94.839042,286.18463)"
+ gradientUnits="userSpaceOnUse"
+ r="49.090309"
+ fy="331.72125"
+ fx="437.81314"
+ cy="331.72125"
+ cx="437.81314"
+ id="radialGradient3160"
+ xlink:href="#linearGradient3154"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective4826"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3154"
+ inkscape:collect="always">
+ <stop
+ id="stop3156"
+ offset="0"
+ style="stop-color:#ffccaa;stop-opacity:1;" />
+ <stop
+ id="stop3158"
+ offset="1"
+ style="stop-color:#ffa669;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3162"
+ inkscape:collect="always">
+ <stop
+ id="stop3164"
+ offset="0"
+ style="stop-color:#ffe860;stop-opacity:1" />
+ <stop
+ id="stop3166"
+ offset="1"
+ style="stop-color:#d38d5f;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3170"
+ inkscape:collect="always">
+ <stop
+ id="stop3172"
+ offset="0"
+ style="stop-color:#ffe1e1;stop-opacity:1" />
+ <stop
+ id="stop3174"
+ offset="1"
+ style="stop-color:#ff5662;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3275"
+ inkscape:collect="always">
+ <stop
+ id="stop3277"
+ offset="0"
+ style="stop-color:#6e6e6e;stop-opacity:1" />
+ <stop
+ id="stop3279"
+ offset="1"
+ style="stop-color:#292929;stop-opacity:1" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4898" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3704" />
+ <radialGradient
+ r="44.809402"
+ fy="259.70007"
+ fx="204.37213"
+ cy="259.70007"
+ cx="204.37213"
+ gradientTransform="matrix(0.8922594,-0.5858395,0.4736232,0.7213489,32.383157,193.80243)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3335"
+ xlink:href="#linearGradient3259"
+ inkscape:collect="always" />
+ <radialGradient
+ r="49.090309"
+ fy="332.53036"
+ fx="438.74796"
+ cy="332.53036"
+ cx="438.74796"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3333"
+ xlink:href="#linearGradient3215"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(133.36396,0.70104)"
+ y2="317.9021"
+ x2="241.00351"
+ y1="349.88623"
+ x1="250.83124"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3331"
+ xlink:href="#linearGradient3223"
+ inkscape:collect="always" />
+ <radialGradient
+ r="46.492542"
+ fy="342.63647"
+ fx="212.99527"
+ cy="342.63647"
+ cx="212.99527"
+ gradientTransform="matrix(1.2141703,-0.3374805,0.2313312,0.8322719,8.4841872,128.00715)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3329"
+ xlink:href="#linearGradient3251"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.4766045"
+ fy="54.748039"
+ fx="34.488853"
+ cy="54.748039"
+ cx="34.488853"
+ gradientTransform="matrix(1,0,0,1.0645162,0,-3.5321331)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2716"
+ xlink:href="#linearGradient3275"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0645162,0,-3.5321331)"
+ r="7.4766045"
+ fy="54.748039"
+ fx="34.488853"
+ cy="54.748039"
+ cx="34.488853"
+ id="radialGradient2714"
+ xlink:href="#linearGradient3275"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective2894"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3215"
+ inkscape:collect="always">
+ <stop
+ id="stop3217"
+ offset="0"
+ style="stop-color:#ffccaa;stop-opacity:1;" />
+ <stop
+ id="stop3219"
+ offset="1"
+ style="stop-color:#fa9351;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3223"
+ inkscape:collect="always">
+ <stop
+ id="stop3225"
+ offset="0"
+ style="stop-color:#665fd3;stop-opacity:1" />
+ <stop
+ id="stop3227"
+ offset="1"
+ style="stop-color:#5fbcd3;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3251"
+ inkscape:collect="always">
+ <stop
+ id="stop3253"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop3255"
+ offset="1"
+ style="stop-color:#938f8f;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3259"
+ inkscape:collect="always">
+ <stop
+ id="stop3261"
+ offset="0"
+ style="stop-color:#918a6f;stop-opacity:1;" />
+ <stop
+ id="stop3263"
+ offset="1"
+ style="stop-color:#7a5a2d;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5451"
+ inkscape:collect="always">
+ <stop
+ id="stop5453"
+ offset="0"
+ style="stop-color:#e4b762;stop-opacity:1" />
+ <stop
+ id="stop5455"
+ offset="1"
+ style="stop-color:#85724f;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5459">
+ <stop
+ style="stop-color:#d3a65f;stop-opacity:1"
+ offset="0"
+ id="stop5461" />
+ <stop
+ style="stop-color:#f8fe5c;stop-opacity:1"
+ offset="1"
+ id="stop5463" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5465">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5467" />
+ <stop
+ style="stop-color:#f8a4a4;stop-opacity:1"
+ offset="1"
+ id="stop5469" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3170"
+ id="radialGradient2879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.863823,0,61.154158)"
+ cx="487.5144"
+ cy="469.90775"
+ fx="487.5144"
+ fy="469.90775"
+ r="44.373123" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3154"
+ id="radialGradient2881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0153728,-0.3575649,0.2655209,0.6048249,-94.839042,286.18463)"
+ cx="437.81314"
+ cy="331.72125"
+ fx="437.81314"
+ fy="331.72125"
+ r="49.090309" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3275"
+ id="radialGradient2883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0645162,0,-3.5321331)"
+ cx="34.488853"
+ cy="54.748039"
+ fx="34.488853"
+ fy="54.748039"
+ r="7.4766045" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3275"
+ id="radialGradient2885"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0645162,0,-3.5321331)"
+ cx="34.488853"
+ cy="54.748039"
+ fx="34.488853"
+ fy="54.748039"
+ r="7.4766045" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3162"
+ id="radialGradient2887"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3129594,0.123287,-6.4540871e-2,0.6873359,-126.48846,57.10022)"
+ cx="489.3262"
+ cy="383.86594"
+ fx="489.3262"
+ fy="383.86594"
+ r="50.593483" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5465"
+ id="radialGradient2889"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2141703,-0.3374805,0.2313312,0.8322719,-119.80611,128.99733)"
+ cx="212.99527"
+ cy="342.63647"
+ fx="212.99527"
+ fy="342.63647"
+ r="46.492542" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5459"
+ id="linearGradient2891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.073663,1.691221)"
+ x1="250.83124"
+ y1="349.88623"
+ x2="241.00351"
+ y2="317.9021" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3215"
+ id="radialGradient2893"
+ gradientUnits="userSpaceOnUse"
+ cx="438.74796"
+ cy="332.53036"
+ fx="438.74796"
+ fy="332.53036"
+ r="49.090309" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3275"
+ id="radialGradient2895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0645162,0,-3.5321331)"
+ cx="34.488853"
+ cy="54.748039"
+ fx="34.488853"
+ fy="54.748039"
+ r="7.4766045" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3275"
+ id="radialGradient2897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0645162,0,-3.5321331)"
+ cx="34.488853"
+ cy="54.748039"
+ fx="34.488853"
+ fy="54.748039"
+ r="7.4766045" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5451"
+ id="radialGradient2899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8475176,0,41.219128)"
+ cx="211.49677"
+ cy="261.49875"
+ fx="211.49677"
+ fy="261.49875"
+ r="45.738976" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3170"
+ id="radialGradient3908"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.863823,0,61.154158)"
+ cx="487.5144"
+ cy="469.90775"
+ fx="487.5144"
+ fy="469.90775"
+ r="44.373123" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3154"
+ id="radialGradient3910"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0153728,-0.3575649,0.2655209,0.6048249,-94.839042,286.18463)"
+ cx="437.81314"
+ cy="331.72125"
+ fx="437.81314"
+ fy="331.72125"
+ r="49.090309" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3275"
+ id="radialGradient3912"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0645162,0,-3.5321331)"
+ cx="34.488853"
+ cy="54.748039"
+ fx="34.488853"
+ fy="54.748039"
+ r="7.4766045" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3275"
+ id="radialGradient3914"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0645162,0,-3.5321331)"
+ cx="34.488853"
+ cy="54.748039"
+ fx="34.488853"
+ fy="54.748039"
+ r="7.4766045" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3162"
+ id="radialGradient3916"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3129594,0.123287,-6.4540871e-2,0.6873359,-126.48846,57.10022)"
+ cx="489.3262"
+ cy="383.86594"
+ fx="489.3262"
+ fy="383.86594"
+ r="50.593483" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5465"
+ id="radialGradient3918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2141703,-0.3374805,0.2313312,0.8322719,-119.80611,128.99733)"
+ cx="212.99527"
+ cy="342.63647"
+ fx="212.99527"
+ fy="342.63647"
+ r="46.492542" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5459"
+ id="linearGradient3920"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.073663,1.691221)"
+ x1="250.83124"
+ y1="349.88623"
+ x2="241.00351"
+ y2="317.9021" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3215"
+ id="radialGradient3922"
+ gradientUnits="userSpaceOnUse"
+ cx="438.74796"
+ cy="332.53036"
+ fx="438.74796"
+ fy="332.53036"
+ r="49.090309" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3275"
+ id="radialGradient3924"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0645162,0,-3.5321331)"
+ cx="34.488853"
+ cy="54.748039"
+ fx="34.488853"
+ fy="54.748039"
+ r="7.4766045" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3275"
+ id="radialGradient3926"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.0645162,0,-3.5321331)"
+ cx="34.488853"
+ cy="54.748039"
+ fx="34.488853"
+ fy="54.748039"
+ r="7.4766045" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5451"
+ id="radialGradient3928"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.8475176,0,41.219128)"
+ cx="211.49677"
+ cy="261.49875"
+ fx="211.49677"
+ fy="261.49875"
+ r="45.738976" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="243.33486"
+ inkscape:cy="400"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="937"
+ inkscape:window-height="1102"
+ inkscape:window-x="1901"
+ inkscape:window-y="25" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(32.5,-3.4139034e-4)">
+ <g
+ id="g3830"
+ transform="translate(3.5756836,1.9434385)">
+ <g
+ transform="translate(0,3.4470185e-4)"
+ id="g2957">
+ <g
+ transform="matrix(0.7088982,0,0,0.7088982,-327.31246,-245.52331)"
+ id="g2532"
+ inkscape:label="Layer 1">
+ <g
+ id="g3279">
+ <path
+ style="fill:url(#radialGradient3908);fill-opacity:1;fill-rule:evenodd;stroke:#383838;stroke-width:3.22161198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 509.03431,412.36914 C 481.19633,413.15928 459.36035,458.74535 469.65782,474.20409 C 479.95526,489.66282 540.38003,489.66282 550.22416,474.20409 C 560.06828,458.74535 537.77809,411.55328 509.03431,412.36914 z"
+ id="path7471"
+ sodipodi:nodetypes="cssz" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#383838;stroke-width:3.47866368;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 488.31049,421.67525 L 534.71338,421.67525 C 534.71338,421.67525 535.45384,467.77778 518.91665,467.77778 C 503.36674,467.77778 488.31049,421.67525 488.31049,421.67525 z"
+ id="path7473"
+ sodipodi:nodetypes="cczc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient3910);fill-opacity:1;fill-rule:evenodd;stroke:#383838;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path7475"
+ sodipodi:cx="450.37299"
+ sodipodi:cy="320.73038"
+ sodipodi:rx="46.590309"
+ sodipodi:ry="46.590309"
+ d="M 496.96329,320.73038 A 46.590309,46.590309 0 1 1 403.78268,320.73038 A 46.590309,46.590309 0 1 1 496.96329,320.73038 z"
+ transform="matrix(0.7431784,0,0,0.82978,176.8726,136.31927)" />
+ <path
+ style="fill:#ffb887;fill-opacity:1;fill-rule:evenodd;stroke:#383838;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 565.06269,449.3876 C 569.28396,455.06289 567.27145,463.71648 560.57134,468.7 C 553.87122,473.68353 545.00447,473.12191 540.78321,467.44662 L 540.72025,467.36198 C 538.25585,463.98168 537.81369,449.47996 542.19954,446.45483 C 547.02789,443.12449 560.84142,443.71231 565.06269,449.3876 z"
+ id="path8544"
+ sodipodi:nodetypes="cscczs" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3271"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(1.0645161,0,0,1,459.23204,356.11017)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient3912);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3273"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.7096775,0,0,0.644697,474.12302,375.73716)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3283"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.2580645,0,0,0.2424242,491.14571,397.10358)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3285"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(1.0645161,0,0,1,488.66119,354.41169)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient3914);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3287"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.7096775,0,0,0.644697,503.55217,374.03868)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3289"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.2580645,0,0,0.2424242,520.57486,395.4051)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.84513275;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3293"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.1612903,0,0,0.1666666,491.34798,404.26594)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.84513275;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3295"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.1612903,0,0,0.1666666,521.25951,402.92923)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#383838;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 520.28738,425.82162 C 513.29314,437.88066 499.54583,427.02752 499.54583,427.02752"
+ id="path3299"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:url(#radialGradient3916);fill-opacity:1;fill-rule:evenodd;stroke:#383838;stroke-width:4.07852221;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 500.5296,389.05277 C 500.5296,389.05277 516.63409,406.07494 533.16248,404.74681 C 549.71598,403.41668 560.86768,395.7035 560.86768,395.7035 C 560.86768,395.7035 552.33018,349.16491 514.18848,348.39427 C 484.32822,347.76881 469.62577,376.43292 465.26763,395.7035 C 460.85347,415.22175 466.90885,415.14758 473.36106,413.4849 C 479.81328,411.82221 500.5296,389.05277 500.5296,389.05277 z"
+ id="path7477"
+ sodipodi:nodetypes="czcszsc" />
+ </g>
+ </g>
+ <g
+ transform="matrix(-0.7088982,0,0,0.7088982,584.08973,-164.1496)"
+ id="g2727"
+ inkscape:label="Layer 1">
+ <g
+ id="g5471">
+ <path
+ style="fill:url(#radialGradient3918);fill-opacity:1;fill-rule:evenodd;stroke:#383838;stroke-width:3.37548995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 235.04237,290.84494 C 205.87475,291.67282 182.9958,339.43626 193.78511,355.63336 C 204.5744,371.83046 267.88527,371.83046 278.19959,355.63336 C 288.5139,339.43626 265.15905,289.99012 235.04237,290.84494 z"
+ id="path7363"
+ sodipodi:nodetypes="cssz" />
+ <path
+ style="fill:url(#linearGradient3920);fill-opacity:1;fill-rule:evenodd;stroke:#383838;stroke-width:3.07961988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 237.22832,320.14762 L 244.12291,327.31033 L 240.22803,350.40203 L 257.19723,360.16718 L 263.54679,344.69197 L 251.48514,326.1319 L 254.03718,316.43484 L 237.22832,320.14762 z"
+ id="path7365"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient3922);fill-opacity:1;fill-rule:evenodd;stroke:#383838;stroke-width:5.00003576;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path7367"
+ sodipodi:cx="450.37299"
+ sodipodi:cy="320.73038"
+ sodipodi:rx="46.590309"
+ sodipodi:ry="46.590309"
+ d="M 496.96329,320.73038 A 46.590309,46.590309 0 1 1 403.78268,320.73038 A 46.590309,46.590309 0 1 1 496.96329,320.73038 z"
+ transform="matrix(-0.778675,0,0,0.869413,588.40366,1.609961)" />
+ <path
+ style="fill:#ffb07a;fill-opacity:1;fill-rule:evenodd;stroke:#383838;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 278.63881,327.17208 C 287.54847,325.22662 293.55422,328.58574 293.55422,335.65878 C 293.55422,342.73183 292.86371,348.37622 279.69319,348.14215 C 267.44774,347.92452 267.56896,340.29597 267.56896,333.22292 L 267.56896,333.11745 C 267.60896,328.93436 268.04138,312.59773 274.77786,312.76408 C 281.98543,312.94206 280.99011,318.42456 278.63881,327.17208 z"
+ id="path8552"
+ sodipodi:nodetypes="cssccsc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2734"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(1.0645161,0,0,1,192.21837,233.68394)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient3924);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2736"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.7096775,0,0,0.644697,207.10935,253.31093)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2738"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.2580645,0,0,0.2424242,224.13204,274.67735)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2740"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(1.0645161,0,0,1,222.60714,230.06622)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient3926);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2742"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.7096775,0,0,0.644697,237.49812,249.69321)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2744"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.2580645,0,0,0.2424242,254.52081,271.05963)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.84513275;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2746"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.1612903,0,0,0.1666666,224.33431,281.83971)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.84513275;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2748"
+ sodipodi:cx="34.488853"
+ sodipodi:cy="54.748039"
+ sodipodi:rx="7.4766045"
+ sodipodi:ry="7.9589663"
+ d="M 41.965458,54.748039 A 7.4766045,7.9589663 0 1 1 41.965213,54.683579"
+ transform="matrix(0.1612903,0,0,0.1666666,255.20546,278.58376)"
+ sodipodi:start="0"
+ sodipodi:end="6.2750861"
+ sodipodi:open="true" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#383838;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 249.91504,305.31463 C 242.9208,317.37367 229.17349,306.52053 229.17349,306.52053"
+ id="path2750"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:url(#radialGradient3928);fill-opacity:1;fill-rule:evenodd;stroke:#383838;stroke-width:3.87308121;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 222.88166,261.04504 C 222.88166,261.04504 236.20786,275.19757 251.07314,275.19757 C 265.05411,275.19757 278.69372,264.97144 278.69372,264.97144 C 278.69372,264.97144 271.57506,236.52707 248.90764,233.9992 C 226.27395,231.47508 200.05933,237.92807 192.75422,263.63501 C 185.36359,289.64288 204.96656,307.14858 204.96656,307.14858 L 211.10049,280.0312 L 219.26055,280.24012 L 222.88166,261.04504 z"
+ id="path7441"
+ sodipodi:nodetypes="czczzcccc" />
+ <path
+ style="fill:#fa9e62;fill-opacity:1;fill-rule:evenodd;stroke:#383838;stroke-width:3.87308121;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 217.38885,282.19115 C 214.54676,274.14136 204.9982,276.88583 204.46373,285.79775 C 203.85474,295.95235 216.54715,297.67246 216.54715,297.67246"
+ id="path7443"
+ sodipodi:nodetypes="csc" />
+ </g>
+ </g>
+ </g>
+ <text
+ id="text2754"
+ y="121.36218"
+ x="26"
+ style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans Bold"
+ xml:space="preserve"><tspan
+ y="121.36218"
+ x="26"
+ id="tspan2756"
+ sodipodi:role="line" /></text>
+ <text
+ id="text2758"
+ y="135.0787"
+ x="-0.109375"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ id="tspan2768"
+ y="135.0787"
+ x="-0.109375"
+ sodipodi:role="line">Alice creates a FileTransfer channel</tspan><tspan
+ id="tspan2804"
+ y="152.5787"
+ x="-0.109375"
+ sodipodi:role="line">with appropriate properties</tspan></text>
+ <text
+ id="text2776"
+ y="228.55966"
+ x="450.69043"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ id="tspan2782"
+ y="228.55966"
+ x="450.69043"
+ sodipodi:role="line" /><tspan
+ id="tspan2784"
+ y="246.05966"
+ x="450.69043"
+ sodipodi:role="line">Bob calls AcceptFile() on the channel</tspan><tspan
+ id="tspan2816"
+ y="263.55966"
+ x="450.69043"
+ sodipodi:role="line">to set up his transfer socket to the CM</tspan></text>
+ <text
+ transform="matrix(0,-1,1,0,0,0)"
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-321.69733"
+ y="-19.305176"
+ id="text2786"><tspan
+ style="font-weight:bold"
+ id="tspan2794"
+ sodipodi:role="line"
+ x="-321.69733"
+ y="-19.305176">Accepted</tspan></text>
+ <text
+ transform="matrix(0,-1,1,0,0,0)"
+ id="text2796"
+ y="-18.751465"
+ x="-196.79735"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ y="-18.751465"
+ x="-196.79735"
+ sodipodi:role="line"
+ id="tspan2800"
+ style="font-weight:bold">Pending</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-0.109375"
+ y="305.55014"
+ id="text2806"><tspan
+ sodipodi:role="line"
+ x="-0.109375"
+ y="305.55014"
+ id="tspan2810">Alice receives FileTransferStateChanged</tspan><tspan
+ id="tspan2814"
+ sodipodi:role="line"
+ x="-0.109375"
+ y="323.05014">and calls ProvideFile() to set up her</tspan><tspan
+ id="tspan2818"
+ sodipodi:role="line"
+ x="-0.109375"
+ y="340.55014">transfer socket to the CM</tspan></text>
+ <text
+ transform="matrix(0,-1,1,0,0,0)"
+ id="text2820"
+ y="-18.072754"
+ x="-424.93109"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ id="tspan2828"
+ y="-18.072754"
+ x="-424.93109"
+ sodipodi:role="line"
+ style="font-weight:bold">Open</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ x="224.31982"
+ y="387.82675"
+ id="text2834"><tspan
+ style="font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans"
+ sodipodi:role="line"
+ x="224.31982"
+ y="387.82675"
+ id="tspan2838">Both Alice and Bob connect to their</tspan><tspan
+ id="tspan2842"
+ style="font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Sans"
+ sodipodi:role="line"
+ x="224.31982"
+ y="405.32675">respective socket</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ x="450.69043"
+ y="190.56918"
+ id="text2934"><tspan
+ sodipodi:role="line"
+ id="tspan2936"
+ x="450.69043"
+ y="190.56918">Bob receives NewChannels and</tspan><tspan
+ sodipodi:role="line"
+ x="450.69043"
+ y="208.06918"
+ id="tspan2944">inspects the channel properties</tspan></text>
+ <g
+ transform="translate(0,-75.406036)"
+ id="g3037">
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-0.109375"
+ y="518.72327"
+ id="text2998"><tspan
+ id="tspan3004"
+ sodipodi:role="line"
+ x="-0.109375"
+ y="518.72327">Alice writes to her socket</tspan></text>
+ <text
+ id="text3011"
+ y="501.22327"
+ x="450.69043"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ id="tspan3013"
+ y="501.22327"
+ x="450.69043"
+ sodipodi:role="line" /><tspan
+ id="tspan3017"
+ y="518.72327"
+ x="450.69043"
+ sodipodi:role="line">Bob reads from his socket</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-0.109375"
+ y="478.59384"
+ id="text3021"><tspan
+ id="tspan3023"
+ sodipodi:role="line"
+ x="-0.109375"
+ y="478.59384">Alice closes her socket and channel</tspan></text>
+ <text
+ transform="matrix(0,-1,1,0,0,0)"
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-544.27753"
+ y="-16.990723"
+ id="text3025"><tspan
+ style="font-weight:bold"
+ sodipodi:role="line"
+ x="-544.27753"
+ y="-16.990723"
+ id="tspan3029">Completed</tspan></text>
+ <text
+ id="text3031"
+ y="496.37048"
+ x="450.69043"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ id="tspan3033"
+ y="496.37048"
+ x="450.69043"
+ sodipodi:role="line" /><tspan
+ id="tspan3035"
+ y="513.87048"
+ x="450.69043"
+ sodipodi:role="line">Bob receives FileTransferStateChanged</tspan><tspan
+ id="tspan3044"
+ y="531.37048"
+ x="450.69043"
+ sodipodi:role="line">and closes his socket and channel</tspan></text>
+ <path
+ id="path3054"
+ d="M 431,279.36218 L -32,279.36218"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 431,363.36218 L -32,363.36218"
+ id="path3826" />
+ <path
+ id="path3828"
+ d="M 431,491.36218 L -32,491.36218"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/docs/book/C/filetransfer.xml b/docs/book/C/filetransfer.xml
index 2f6e103..b6e836a 100644
--- a/docs/book/C/filetransfer.xml
+++ b/docs/book/C/filetransfer.xml
@@ -11,11 +11,147 @@
<interfacename>Channel.Type.FileTransfer</interfacename> channel.
</para>
+ <para>
+ The connection manager carries out file transfer via the most appropriate
+ mechanism, depending on the protocol. Connection Managers do not know
+ about accessing files or URLs, and it is not possible to pass file
+ descriptors across D-Bus, so transfer between the client and the
+ connection manager is done using a local socket (e.g. a UNIX socket or
+ local IPv4 socket).
+ </para>
+
+ <para>
+ The lifetime of a file transfer channel goes through several states:
+ Pending, Accepted, Open and Completed (or Cancelled). This is shown in
+ <xref linkend="fig.filetransfer.actors"/>.
+ </para>
+
+ <figure id="fig.filetransfer.actors">
+ <title>Basic Structure of a File Transfer</title>
+ <mediaobject><imageobject>
+ <imagedata fileref="figures/file-transfer-actors.png"
+ format="PNG" />
+ </imageobject></mediaobject>
+ </figure>
+
<sect1 id="sect.filetransfer.sending">
<title>Sending Files</title>
</sect1>
<sect1 id="sect.filetransfer.receiving">
<title>Receiving Files</title>
+
+ <!-- FIXME: something about Capabilities -->
+
+ <sect2 id="sect.filetransfer.receiving.channel">
+ <title>Handling The New Channel</title>
+
+ <para>
+ An incoming file transfer channel will be heralded by the
+ <methodname>NewChannels</methodname> signal (as with other incoming
+ channels, e.g. <link linkend="sect.messaging.messages.receiving">text
+ channels</link>). The channel type of the new channel will be
+ <interfacename>org.freedesktop.Telepathy.Channel.Type.FileTransfer</interfacename>.
+ </para>
+
+ <para>
+ As well as common channel properties (e.g.
+ <property>InitiatorHandle</property>, <property>InitiatorID</property>,
+ <property>TargetHandle</property>, <property>TargetID</property>, etc.),
+ there will be properties specific to file transfers that contain the
+ metadata for the file, summarised in
+ <xref linkend="table.filetransfer.receiving.props"/>. The client should
+ display this information to the user when asking whether or not to
+ accept the file.
+ </para>
+
+ <table id="table.filetransfer.receiving.props">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>Property</entry>
+ <entry>Type</entry>
+ <entry>Description</entry>
+ <entry>Notes</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Filename</entry>
+ <entry>String</entry>
+ <entry>
+ The name of the file on the sender's side, the suggested
+ filename for the receiver.
+ </entry>
+ <entry>Required</entry>
+ </row>
+
+ <row>
+ <entry>ContentType</entry>
+ <entry>String</entry>
+ <entry>
+ The MIME type of the file.
+ </entry>
+ <entry>Required</entry>
+ </row>
+
+ <row>
+ <entry>Size</entry>
+ <entry>uint64</entry>
+ <entry>
+ The size of the file in bytes.
+ </entry>
+ <entry>
+ Required. Although it must be set accurately, receivers should not
+ trust this value.
+ </entry>
+ </row>
+
+ <row>
+ <entry>ContentHashType</entry>
+ <entry><type>File_Hash_Type</type></entry>
+ <entry>
+ Specifies the hashing function used for the
+ <property>ContentHash</property> property.
+ </entry>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry>ContentHash</entry>
+ <entry>String</entry>
+ <entry>
+ Hash of the file transfer contents.
+ </entry>
+ <entry>
+ <property>ContentHashType</property> must be set to the appropriate
+ hashing algorithm.
+ </entry>
+ </row>
+
+ <row>
+ <entry>Description</entry>
+ <entry>String</entry>
+ <entry>
+ A string description of the file transfer.
+ </entry>
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry>Date</entry>
+ <entry>int64 (<type>Unix_Timestamp64</type>)</entry>
+ <entry>
+ The last modification time (mtime) of the file.
+ </entry>
+ <entry></entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+
+ </sect2>
+
</sect1>
</chapter>
diff --git a/docs/book/Makefile.am b/docs/book/Makefile.am
index 7800133..774aca2 100644
--- a/docs/book/Makefile.am
+++ b/docs/book/Makefile.am
@@ -32,7 +32,8 @@ DOC_FIGURES_SRC = \
bus-conceptual.svg \
bus-hierarchy-conceptual.svg \
contactlist-flowchart.svg \
- telepathy-glib-type-unpacked.svg
+ telepathy-glib-type-unpacked.svg \
+ file-transfer-actors.svg
# The names of any pictures:
DOC_FIGURES =
--
1.5.6.5
More information about the telepathy-commits
mailing list