package Ġcom . so y wiz . k orte . vertx . internal Ċ Ċ import Ġcom . so y wiz . k orte . util .* Ċ import Ġio . vertx . core .* Ċ import Ġkotlin . coroutines .* Ċ Ċ internal Ġfun Ġ< T > ĠHandler < AsyncResult < T >> . handle ( coroutine Context : ĠCor outine Context , Ġcallback : Ġsuspend Ġ() Ġ-> ĠT ) Ġ{ ĊĠĠĠ Ġval Ġhandler Ġ= Ġthis ĊĠĠĠ Ġcallback . start Coroutine ( object Ġ: ĠContinu ation < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġcontext : ĠCor outine Context Ġ= Ġcoroutine Context ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġresume With ( result : ĠResult < T >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . handle ( Vx AsyncResult ( result . get OrNull (), Ġresult . exception OrNull ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ internal Ġclass ĠV x AsyncResult < T >( val Ġresult : ĠT ?, Ġval Ġexception : ĠThrowable ?) Ġ: ĠAsync Result < T > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġsucceeded (): ĠBoolean Ġ= Ġexception Ġ== Ġnull ĊĠĠĠ Ġoverride Ġfun Ġfailed (): ĠBoolean Ġ= Ġexception Ġ!= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġresult (): ĠT Ġ= Ġresult !! ĊĠĠĠ Ġoverride Ġfun Ġcause (): ĠThrowable Ġ= Ġexception !! Ċ } Ċ Ċ internal Ġclass ĠDeferred Handler < T > Ġ: ĠHandler < AsyncResult < T >> Ġ{ ĊĠĠĠ Ġval Ġdeferred Ġ= ĠK orte Deferred < T >() ĊĠĠĠ Ġoverride Ġfun Ġhandle ( event : ĠAsync Result < T >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . failed ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeferred . complete Exception ally ( event . cause ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeferred . complete ( event . result ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġsuspend Ġfun Ġ< T > Ġvx ( callback : Ġ( Handler < AsyncResult < T >>) Ġ-> ĠUnit ): ĠT Ġ= ĊĠĠĠ ĠDeferred Handler < T >(). also ( callback ). deferred . await () Ċ