/** Ċ Ġ* ĠJ oo by Ġhttps :// joo by . io Ċ Ġ* ĠApache ĠLicense ĠVersion Ġ 2 . 0 Ġhttps :// joo by . io / LICENSE . txt Ċ Ġ* ĠCopyright Ġ 2 0 1 4 ĠEd gar ĠE sp ina Ċ Ġ*/ Ċ package Ġio . joo by . internal . mvc Ċ Ċ import Ġio . joo by . Context Ċ import Ġio . joo by . Coroutine Router Ċ import Ġio . joo by . Route Ċ import Ġkotlinx . coroutines . Coroutine ExceptionHandler Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlin . coroutines . intr insics . suspend Coroutine Un intercept ed Or Return Ċ Ċ class ĠCor outine Launcher ( val Ġnext : ĠRoute . Handler ) Ġ: ĠRoute . Handler Ġ{ ĊĠ Ġoverride Ġfun Ġapply ( ctx : ĠContext ): ĠAny Ġ{ ĊĠĠĠ Ġval Ġrouter Ġ= Ġctx . router . attribute < Coroutine Router >(" coroutine Router ") ĊĠĠĠ Ġval Ġexception Handler Ġ= ĠCor outine ExceptionHandler Ġ{ Ġ_, Ġx Ġ-> ĊĠĠĠĠĠ Ġctx . send Error ( x ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġrouter . coroutine Scope . launch ( exception Handler , Ġrouter . coroutine Start ) Ġ{ ĊĠĠĠĠĠ Ġval Ġresult Ġ= Ġsuspend Coroutine Un intercept ed Or Return < Any > Ġ{ ĊĠĠĠĠĠĠĠ Ġctx . attribute (" ___ continu ation ", Ġit ) ĊĠĠĠĠĠĠĠ Ġnext . apply ( ctx ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġif Ġ(! ctx . is Response Started ) Ġ{ ĊĠĠĠĠĠĠĠ Ġctx . render ( result !! ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġctx ĊĠ Ġ} Ċ } Ċ