/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠAd Lib ertas , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . ad lib ertas . client Ċ Ċ import Ġco . touch lab . ker mit . Ker mit Ċ import Ġkotlinx . coroutines . Coroutine ExceptionHandler Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Supervisor Job Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ class ĠMain Scope ( private Ġval Ġmain Context : ĠCor outine Context , Ġprivate Ġval Ġlog : ĠKer mit ) Ġ: ĊĠĠĠ ĠCor outine Scope Ġ{ ĊĠĠĠ Ġoverride Ġval Ġcoroutine Context : ĠCor outine Context ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmain Context Ġ+ Ġjob Ġ+ Ġexception Handler ĊĊĠĠĠ Ġinternal Ġval Ġjob Ġ= ĠSuper visor Job () ĊĠĠĠ Ġprivate Ġval Ġexception Handler Ġ= ĠCor outine ExceptionHandler Ġ{ Ġ_, Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠ Ġprint Throwable ( throwable ) ĊĠĠĠĠĠĠĠ Ġshow Error ( throwable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO : ĠSome Ġway Ġof Ġexposing Ġthis Ġto Ġthe Ġcaller Ġwithout Ġtr apping Ġa Ġreference Ġand Ġfree zing Ġit . ĊĠĠĠ Ġprivate Ġfun Ġshow Error ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . e ( throwable Ġ= Ġt ) Ġ{ Ġ" Error Ġin ĠMain Scope " Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġjob . cancel () ĊĠĠĠ Ġ} Ċ } Ċ