package Ġorg . jetbrains . ktor . jetty Ċ Ċ import Ġorg . eclipse . jetty . io .* Ċ import Ġorg . eclipse . jetty . util .* Ċ import Ġorg . jetbrains . ktor . c io .* Ċ import Ġjava . nio .* Ċ import Ġkotlin . coroutines . experimental .* Ċ Ċ internal Ġclass ĠEnd Point Write Channel ( val Ġend Point : ĠEnd Point ) Ġ: ĠWrite Channel Ġ{ ĊĠĠĠ Ġ@ Volatile ĊĠĠĠ Ġprivate Ġvar Ġhandler : ĠContinu ation < Unit >? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġcallback Ġ= Ġobject Ġ: ĠCallback Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsucceeded () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġhandler ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġh ?. resume ( Unit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfailed ( x : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler ?. resume With Exception ( x Ġ?: ĠException ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġoverride Ġfun Ġwrite ( src : ĠByteBuffer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! src . has Remaining ()) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuspend Coroutine Ġ{ Ġcontinuation Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . handler Ġ= Ġcontinuation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Point . write ( callback , Ġsrc ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġoverride Ġfun Ġflush () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġend Point . close () ĊĠĠĠ Ġ} Ċ }