Ċ package Ġcom . example . mv vm av engers . base . use case Ċ Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ /** Ċ Ġ* ĠDispatcher Suspend UseCase ĠClass Ċ Ġ* Ċ Ġ* ĠExec utes Ġbusiness Ġlogic Ġsynchronous ly Ġor Ġasynchronously Ġusing ĠCor outines Ġwith Ġprovided ĠDispatcher Ċ Ġ*/ Ċ abstract Ġclass ĠDispatcher Suspend UseCase < Type , Ġin ĠParams > ĊĠĠĠ Ġ( private Ġval Ġcoroutine Dispatcher : ĠCor outine Dispatcher ) Ġwhere ĠType Ġ: ĠAny Ġ{ ĊĊĠĠĠĠĠĠĠ Ġabstract Ġsuspend Ġfun Ġexecute ( params : ĠParams ): ĠResult Av enger < Type > ĊĊĠĠĠĠĠĠĠ Ġsuspend Ġoperator Ġfun Ġinvoke ( params : ĠParams ): ĠResult Av enger < Type > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( coroutine Dispatcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } Ċ