package Ġcom . c rowd proj . kotlin . cor . handlers Ċ Ċ import Ġcom . c rowd proj . kotlin . cor . Cor Dsl Marker Ċ import Ġcom . c rowd proj . kotlin . cor . IC or Chain Dsl Ċ import Ġcom . c rowd proj . kotlin . cor . IC or Exec Ċ import Ġcom . c rowd proj . kotlin . cor . IC or Worker Ċ import Ġcom . c rowd proj . kotlin . cor . base . Base Cor Worker Dsl Ċ Ċ @ Cor Dsl Marker Ċ fun Ġ< T > ĠI Cor Chain Dsl < T >. worker ( ĊĠĠĠ Ġfunction : ĠCor Worker Dsl < T >. () Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġadd ( ĊĠĠĠĠĠĠĠ ĠCor Worker Dsl < T >(). apply ( function ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Cor Dsl Marker Ċ fun Ġ< T > ĠI Cor Chain Dsl < T >. worker ( ĊĠĠĠ Ġtitle : ĠString , ĊĠĠĠ Ġdescription : ĠString Ġ= Ġ"", ĊĠĠĠ Ġfunction : Ġsuspend ĠT . () Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġadd ( ĊĠĠĠĠĠĠĠ ĠCor Worker Dsl < T >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . description Ġ= Ġdescription ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . handle ( function ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ class ĠCor Worker < T >( ĊĠĠĠ Ġoverride Ġval Ġtitle : ĠString , ĊĠĠĠ Ġoverride Ġval Ġdescription : ĠString Ġ= Ġ"", ĊĠĠĠ Ġprivate Ġval Ġblock On : Ġsuspend ĠT . () Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ}, ĊĠĠĠ Ġprivate Ġval Ġblock Handle : Ġsuspend ĠT . () Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġprivate Ġval Ġblock Except : Ġsuspend ĠT .( Throwable ) Ġ-> ĠUnit Ġ= Ġ{}, Ċ ) Ġ: ĠI Cor Worker < T > Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġon ( context : ĠT ): ĠBoolean Ġ= Ġblock On ( context ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġhandle ( context : ĠT ) Ġ= Ġblock Handle ( context ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġexcept ( context : ĠT , Ġe : ĠThrowable ) Ġ= Ġblock Except ( context , Ġe ) Ċ } Ċ Ċ /** Ċ Ġ* ĠD LS Ġcontext Ġof Ġa Ġsingle Ġexecution . ĠCannot Ġbe Ġexpanded Ġby Ġother Ġchains . Ċ Ġ*/ Ċ @ Cor Dsl Marker Ċ class ĠCor Worker Dsl < T >() Ġ: ĠBase Cor Worker Dsl < T >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbuild (): ĠI Cor Exec < T > Ġ= ĠCor Worker < T >( ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdescription , ĊĠĠĠĠĠĠĠ Ġblock On Ġ= Ġblock On , ĊĠĠĠĠĠĠĠ Ġblock Handle Ġ= Ġblock Handle , ĊĠĠĠĠĠĠĠ Ġblock Except Ġ= Ġblock Except ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġon ( function : Ġsuspend ĠT . () Ġ-> ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock On Ġ= Ġfunction ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( function : Ġsuspend ĠT . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock Handle Ġ= Ġfunction ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexcept ( function : Ġsuspend ĠT .( e : ĠThrowable ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock Except Ġ= Ġfunction ĊĠĠĠ Ġ} Ċ Ċ } Ċ