package Ġorg . gob lin framework . core . event . boss Ċ Ċ import Ġcom . l max . dis rupt or . Work Handler Ċ import Ġorg . gob lin framework . core . event . exception . Event Boss Channel NotFoundException Ċ import Ġorg . gob lin framework . core . event . exception . Event Boss Listener NotFoundException Ċ import Ġorg . gob lin framework . core . util . Object Utils Ċ Ċ class ĠEvent Bus Boss EventHandler Ġprivate Ġconstructor () Ġ: ĠWork Handler < EventBus Boss Event > Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Field Ġval ĠINSTANCE Ġ= ĠEvent Bus Boss EventHandler () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Event ( event : ĠEvent Bus Boss Event ) Ġ{ ĊĠĠĠ Ġevent . received Count ?. increment () ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġprocess EventBus Boss Event ( event ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠ Ġevent . clear () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġprocess EventBus Boss Event ( event : ĠEvent Bus Boss Event ) Ġ{ ĊĠĠĠ Ġval Ġctx Ġ= Ġevent . ctx !! ĊĠĠĠ Ġval Ġworker Ġ= ĠEvent Bus Boss . INSTANCE . lookup ( ctx . channel ) ĊĠĠĠ Ġif Ġ( worker Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġevent . worker Mis sed Count ?. increment () ĊĠĠĠĠĠ Ġctx . boss Exception Ca ught ( Event Boss Channel NotFoundException ()) ĊĠĠĠĠĠ Ġctx . complete () ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġlisteners Ġ= Ġworker . lookup ( ctx ) ĊĠĠĠ Ġif Ġ( listeners . isEmpty ()) Ġ{ ĊĠĠĠĠĠ Ġevent . listener Mis sed Count ?. increment () ĊĠĠĠĠĠ Ġctx . boss Exception Ca ught ( Event Boss Listener NotFoundException ()) ĊĠĠĠĠĠ Ġctx . complete () ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( ctx . event . is F air ) Ġ{ ĊĠĠĠĠĠ Ġval Ġsorted Ġ= Ġlisteners . sorted With ( Comparator Ġ{ Ġo 1 , Ġo 2 Ġ-> ĊĠĠĠĠĠĠĠ ĠObject Utils . calculate Order ( o 1 ). compareTo ( Object Utils . calculate Order ( o 2 )) ĊĠĠĠĠĠ Ġ}). toList () ĊĠĠĠĠĠ Ġctx . initialize Task ( 1 ) ĊĠĠĠĠĠ Ġworker . publish ( 0 , Ġctx , Ġsorted ) ĊĠĠĠĠĠ Ġevent . dis patched Count ?. increment () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġctx . initialize Task ( listeners . size ) ĊĠĠĠĠĠ Ġlisteners . forEach Indexed Ġ{ ĠtaskId , Ġlistener Ġ-> ĊĠĠĠĠĠĠĠ Ġworker . publish ( taskId , Ġctx , ĠlistOf ( listener )) ĊĠĠĠĠĠĠĠ Ġevent . dis patched Count ?. increment () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }