package Ġcom . lambda . event . event bus Ċ Ċ import Ġcom . lambda . event . Listener Manager Ċ Ċ /** Ċ Ġ* Ġ[ I Async EventBus ] Ġwith Ġsome Ġbasic Ġimplementation Ċ Ġ* ĠMust Ġbe Ġused Ġwith ĠKotlin x ĠCor outine Ġand Ġoverridden Ġ[ post ] Ġmethod Ċ Ġ*/ Ċ abstract Ġclass ĠAbstract Async EventBus Ġ: ĠAbstract EventBus (), ĠI Async EventBus Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġsubscribe ( objs : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . subscribe ( objs ) ĊĊĠĠĠĠĠĠĠ ĠListener Manager . get Async Listeners ( objs )?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubscribed Listeners Async . get Or Put ( it . event Class , Ġ:: new Set Async ). add ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġunsubscribe ( objs : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . unsubscribe ( objs ) ĊĊĠĠĠĠĠĠĠ ĠListener Manager . get Async Listeners ( objs )?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubscribed Listeners Async [ it . event Class ]?. remove ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }