Dim ond hanner y gwaith yw datrys dolen. Unwaith y mae Iris wedi troi URL yn fwriad, mae’n rhaid i’r bwriad hwnnw gyrraedd yr un olwg a fydd yn gweithredu arno, golwg nad yw fel arfer wedi’i gosod eto. Mae Iris yn ei gario fel baton: trosglwyddiad unwaith-yn-unig sy’n cyflwyno’n union unwaith, i union un derbynnydd, ar y foment y mae’r olwg yn cael ei gosod. Nid oes dim yn cael ei adael mewn cyflwr a rennir, ac ni ellir defnyddio dim ddwywaith.
Mae gan ddolen wedi’i datrys olwg gyrchfan sy’n gorfod defnyddio ei llwyth. Ond mae’r olwg honno’n aml yn cael ei hadeiladu ar ôl i’r ddolen gael ei thrin, felly nid yw’r ddau ben yn cyd-fynd mewn amser. Mae’r ateb amlwg, gadael y llwyth ar wrthrych arsylladwy a rennir hyd nes i’r olwg ei ddarllen, yn gollwng: mae’r llwyth yn goroesi ei ddefnydd, gall ail olwg ei ddarllen, a gall ail ddolen gyflym gael ei defnyddio gan y sgrin anghywir.
Mae Iris yn modelu’r llwyth fel Baton, digwyddiad yn hytrach na gwerth, ac yn ei gyflwyno drwy Handoff unwaith-yn-unig sy’n gweithio pa ben bynnag sy’n cyrraedd gyntaf, y ddolen neu’r olwg. Mae’r trosglwyddiadau’n byw mewn HandoffRegistry wedi’i allweddu yn ôl llwybr, sy’n cymryd y ddolen ddiweddaraf ar gyfer llwybr ac yn tynnu’r cofnod yn awtomatig y foment y’i cyflwynir. Y canlyniad yw un cyflwyniad, y diweddaraf sy’n ennill, heb ddim cyflwr yn aros i’w ddarllen eto na’i glirio â llaw.
Dim ond hanner y daith yw datrys dolen. Mae Iris yn troi URL yn fwriad yn erbyn cyflwr presennol yr ap; y datrysydd ymwybodol o gyflwr yw’r hanner cyntaf hwnnw. Ond nid sgrin yw bwriad. Mae’n dal i orfod cyrraedd yr un olwg sy’n ei defnyddio, ac yn aml nid yw’r olwg honno ar y sgrin eto: gwthiodd y ddolen y llwybr a fydd yn ei hadeiladu, ac mae’r olwg yn cael ei gosod ychydig yn ddiweddarach, ar y cylch rhedeg nesaf.
Felly mae bwlch. Ar un ochr, llwyth sy’n bodoli nawr. Ar yr ochr arall, derbynnydd nad yw’n bodoli eto. Y lle temtasiwn i bontio’r bwlch yw rhywle y gall y ddau ben ei weld: gwrthrych arsylladwy a rennir sy’n cario’r bwriad sy’n aros. Mae’r cynhyrchydd yn ei ysgrifennu; mae’r olwg yn ei ddarllen pan ddaw i’r amlwg. Mae hyn yn gweithio hyd at yr union bwynt nad yw’n gwneud.
Cyflwr y gellir ei newid a rennir yw’r siâp anghywir ar gyfer digwyddiad un-tro, ac mae’n methu mewn ffyrdd cyffredin. Mae’r llwyth yn goroesi ei ddefnydd: ar ôl i’r olwg ei ddarllen, mae’n dal i eistedd yno. Mae ail olwg, neu’r un olwg yn ailymddangos yn ddiweddarach, yn ei ddarllen am yr eildro. Dwy ddolen yn olynol yn gyflym ac mae’r ail yn ysgrifennu dros y cyntaf ar ei hanner, neu mae’r cyntaf yn cael ei defnyddio gan olwg a oedd i fod ar gyfer yr ail. Ac mae’n rhaid i rywun gofio clirio’r slot wedyn, â llaw, ar bob llwybr. Nid oes dim un o’r rhain yn egsotig. Dyma’r hyn a gewch pan fydd gwerth a ddylai gael ei drosglwyddo unwaith yn cael ei adael o gwmpas yn lle hynny.
Yr hyn y mae’r sefyllfa mewn gwirionedd yn galw amdano yw trosglwyddiad: gwerth a gyflwynir unwaith, i un derbynnydd, ac yna wedi mynd. Mae Iris yn enwi’r gwerth hwnnw’n faton ac yn rhoi iddo fecanwaith cyflwyno a adeiladwyd ar gyfer union-unwaith.
Mae Baton yn cario dau beth: y bwriad wedi’i datrys, a llif, cyd-destun cydberthyniad sy’n gadael i un rhediad llywio gael ei olrhain o un pen i’r llall. Y bwriad yw’r hyn y bydd yr olwg yn gweithredu arno; y llif yw sut mae’r gadwyn gyfan, o URL i gyrraedd, yn aros yn adnabyddadwy fel un rhediad.
Y dewis sy’n dwyn y pwysau yw ei hunaniaeth. Mae baton yn hafal iddo’i hun yn unig. Mae dau faton â’r un bwriad a’r un llif yn dal i gymharu’n anghyfartal, oherwydd caiff pob un ei stampio â dynodwr newydd y foment y’i gwneir, ac mae hafaledd a stwnshio yn ôl y dynodwr hwnnw yn unig. Cyfeiriad digwyddiad unwaith-yn-unig yw baton, nid gwerth y gallwch ei ail-lunio.
Mae hynny’n fwriadol, ac mae’n bwysig ymhellach i lawr y lein. Am fod baton yn sefyll dros y cyrhaeddiad hwn yn hytrach na ’r llwyth hwn, ni allwch ei ail-lunio, ei ddad-ddyblygu yn ôl cynnwys, na thrin dau daniad ar wahân o’r un ddolen fel yr un peth. Bob tro y mae dolen yn tanio, ei baton ei hun ydyw, yn wahanol i bob un arall. Yna gall y peiriannau cyflwyno resymu am ddigwyddiadau sengl, adnabyddadwy yn lle maes y gellir ei newid y mae ei gynnwys presennol yn ddirgelwch i bawb.
Mae baton yn bodoli am yn union cyhyd ag y mae’n cymryd i’w drosglwyddo. Nid gwerth wedi’i adael ar silff mohono; un digwyddiad ydyw, wedi’i gyflwyno unwaith, ac yna wedi mynd.
Y mecanwaith cyflwyno yw Handoff: cydlynydd unwaith-yn-unig sy’n cyflwyno un baton i union un derbynnydd. Creïr un fesul dolen sy’n cyrraedd, felly mae pob rhediad yn annibynnol ar y diwethaf.
Y rhan anodd yw’r drefn, ac mae trosglwyddiad wedi’i adeiladu i wneud y drefn yn amherthnasol. Nid yw’r ddolen a’r olwg yn cyrraedd mewn dilyniant sefydlog. Weithiau mae’r ddolen yn datrys gyntaf, tra nad yw’r olwg a fydd yn ei defnyddio’n bodoli eto. Weithiau mae’r olwg yn cael ei gosod gyntaf ac mae’n rhaid iddi aros am ddolen sy’n dal ar y ffordd. Mae trosglwyddiad yn trin y ddau o un lle. Os yw’r cynhyrchydd yn cyrraedd yno gyntaf, caiff y baton ei fyfferu hyd nes i dderbynnydd ei hawlio. Os yw’r derbynnydd yn cyrraedd yno gyntaf, mae ei hawliad yn aros hyd nes i’r cynhyrchydd gyflwyno. Y naill ffordd neu’r llall, mae’r derbynnydd yn derbyn y baton yn union unwaith, ac nid oes rhaid i’r naill ben na’r llall wybod pa un ohonynt a enillodd y ras.
Caiff unwaith-yn-unig ei orfodi, nid ei fwriadu’n unig. Caiff baton ei hawlio unwaith; ar ôl i drosglwyddiad gyflwyno, anwybyddir cyflwyniadau pellach ac mae hawliadau pellach yn dychwelyd dim. Os caiff y derbynnydd sy’n aros ei ganslo, oherwydd i’r olwg gael ei diystyru cyn i unrhyw ddolen gyrraedd, mae’r trosglwyddiad yn dal i gau’n lân: nid yw’n cyflwyno dim ac ni all byth yn ddiweddarach gyflwyno i hawlydd sydd eisoes wedi mynd. Mae yna’n union un cyflwyniad neu ddim, byth dau.
Mae angen cartref ar drosglwyddiad-fesul-dolen y gall y cynhyrchydd a’r olwg sy’n ei ddefnyddio ei ganfod heb ei drosglwyddo law-yn-llaw drwy’r goeden olygfeydd. Mae Iris yn eu cadw mewn HandoffRegistry wedi’i allweddu yn ôl llwybr. Mae’r allweddu hwnnw’n gwahanu cylchred bywyd trosglwyddiad oddi wrth hunaniaeth y llwybr, sy’n gadael i lwybrau aros yn enums stwnsiadwy plaen yn hytrach na chario trosglwyddiad fel gwerth cysylltiedig a gorfod ysgrifennu hafaledd â llaw.
Y diweddaraf sy’n ennill wrth gofrestru. Mae cofrestru dolen ar gyfer llwybr yn gosod trosglwyddiad newydd sbon ac yn disodli unrhyw un sy’n bodoli, felly mae ail ddolen i’r un llwybr yn disodli’r cyntaf yn hytrach na chiwio y tu ôl iddi. Y ddolen ddiweddaraf yw’r un sy’n datrys.
Mae’r gofrestrfa’n arsylladwy, a dyna sy’n cadw sgrin sydd eisoes ar agor yn onest. Mae golwg sydd eisoes wedi’i gosod ar gyfer llwybr yn darllen ei throsglwyddiad yn ei chorff ei hun, felly pan fydd dolen newydd yn disodli’r cofnod mae’r olwg yn ail-rendro, yn codi hunaniaeth y trosglwyddiad newydd, ac yn ailddechrau ei hawliad yn ei erbyn. Heb yr arsylwi hwnnw, byddai dolen wedi’i hail-wthio i lwybr sydd eisoes ar y sgrin yn gosod trosglwyddiad nad oedd yr olwg byth yn ei wylio, a byddai’r ddolen yn cyrraedd i unman. Mae hawliad y trosglwyddiad a ddisodlwyd yn dod i ben heb gyflwyno, felly mae’r diweddaraf-sy’n-ennill yn dal heb ail-lywiad crwydrol.
Glanhau’n awtomatig ar gyflwyno yw’r rhan sy’n cadw’r llwyth rhag aros. Y foment y caiff trosglwyddiad ei gyflwyno, drwy unrhyw lwybr (wedi’i hawlio’n uniongyrchol, wedi’i fyfferu ac yna’i hawlio, neu wedi’i ganslo), mae’n tynnu ei hun o’r gofrestrfa. Nid yw defnyddwyr byth yn rheoli cofnodion â llaw. Mae’r tynnu’n ymwybodol o hunaniaeth: dim ond os yw’r slot yn dal i bwyntio at yr un trosglwyddiad y mae’n ei glirio, felly ni all glanhad hwyr gan drosglwyddiad a ddisodlwyd daflu allan y disodlydd ffresach a gymerodd ei le. Mae’r llwyth yn bodoli am yn union cyhyd ag y mae’n cymryd i’w gyflwyno, ac yna mae wedi mynd. Nid oes dim ar ôl i’w ddarllen am yr eildro a dim i’w glirio.
Mae trosglwyddiad yn cario un ddolen i un gyrchfan ac yn ei throsglwyddo unwaith. Dyna’r siâp cywir pan fydd gan lwyth un derbynnydd cyfreithlon, sef yr achos cyffredin ar gyfer llywio.
Pan ddylai dolen gyrraedd pob sgrin sy’n gwrando ar hyn o bryd yn lle hynny, ffrwd URL fyw yn hytrach nag un cyflwyniad, mae Iris yn defnyddio Broadcaster. Mae’n lapio pob URL wedi’i dosrannu mewn baton ac yn ei amlddarlledu i’r holl danysgrifwyr presennol, ac mae tanysgrifiwr newydd yn ailchwarae’r baton olaf yn ddiofyn fel nad yw byth yn cael ei eni’n hen. Yr un eirfa baton, gwarant wahanol: mae’r trosglwyddiad yn union-unwaith i un derbynnydd, mae’r darlledwr yn werth-diweddaraf i lawer. Y trosglwyddiad yw’r un sy’n addo bod llwyth yn cael ei ddefnyddio unwaith ac nad yw byth yn gollwng.
Holl bwynt y baton yw nad yw dolen wedi’i datrys byth yn dod yn gyflwr amgylchynol. Digwyddiad ydyw ag iddo berchennog ac oes: crëwyd pan fydd dolen yn datrys, ei gyflwyno i’r un olwg sy’n cael ei gosod i’w ddefnyddio, a’i lanhau i ffwrdd y foment y mae’n glanio. Mae’r map o sut y caiff dolen ei datrys yn y lle cyntaf, a lle mae hyn oll yn eistedd yn y dyluniad ehangach, yn byw ar yr hwb dolennu dwfn.