/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 - 2 0 2 1 ĠCloud opt Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* Ġhttps :// 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 Ġnet . cloud opt . next . event bus . provider Ċ Ċ import Ġio . vertx . core . event bus . Delivery Options Ċ import Ġio . vertx . core . event bus . EventBus Ċ import Ġio . vertx . core . json . JsonObject Ċ import Ġnet . cloud opt . next . core . Worker Ċ import Ġnet . cloud opt . next . core . Worker . global Ċ import Ġnet . cloud opt . next . event bus . EventBus Manager Ċ import Ġnet . cloud opt . next . event bus . EventListener Ċ import Ġnet . cloud opt . next . event bus . codec . Json Message Codec Ċ import Ġnet . cloud opt . next . event bus . codec . Map Message Codec Ċ import Ġnet . cloud opt . next . logging . Logger Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . full . create Instance Ċ import Ġkotlin . reflect . jvm . jvm Name ĊĊ Ċ class ĠVert x EventBus Provider Ġ: ĠEvent Bus Provider Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġevent Bus : ĠEvent Bus ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLogger . getLogger ( Vert x EventBus Provider :: class ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġoptions Ġ= ĠDelivery Options (). set Codec Name (" json ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Bus Ġ= ĠWorker . vertx . event Bus () ĊĠĠĠĠĠĠĠ Ġevent Bus . register Codec ( Map Message Codec ()) ĊĠĠĠĠĠĠĠ Ġevent Bus . register Codec ( Json Message Codec ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġconsumer ( address : ĠString , Ġlistener : ĠK Class < EventListener >) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Bus . consumer < JsonObject >( address ) Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġglobal Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . create Instance (). listener ( message . body ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. completion Handler Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . succeeded ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("[ EVENT ] ĠRegistered Ġevent Ġlistener ï¼ļ [$ address ] Ġon Ġ${ EventBus Manager . event Listener List [ address ]?. jvm Name }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ("[ EVENT ] ĠRegistered Ġevent Ġlistener Ġwas Ġerror ï¼ļ Ġ${ EventBus Manager . event Listener List [ address ]?. jvm Name }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsend ( address : ĠString , Ġmessage : ĠJsonObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Bus . send ( address , Ġmessage , Ġoptions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġpublish ( address : ĠString , Ġmessage : ĠJsonObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Bus . publish ( address , Ġmessage , Ġoptions ) ĊĠĠĠ Ġ} Ċ Ċ }