package Ġco . om ise go . om ise go . websocket . channel . dispatcher Ċ Ċ /* Ċ Ġ* ĠOm ise GO Ċ Ġ* Ċ Ġ* ĠCreated Ġby ĠPh uch it ĠSi ri mong k ols ath ien Ġon Ġ 1 2 / 5 / 2 0 1 8 ĠAD . Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 7 - 2 0 1 8 ĠOm ise GO . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ Ċ import Ġco . om ise go . om ise go . model . socket . Socket Receive Ċ import Ġco . om ise go . om ise go . websocket . enum . Socket Custom Event Ċ import Ġco . om ise go . om ise go . websocket . listener . SocketChannel Listener Ċ import Ġco . om ise go . om ise go . websocket . listener . Socket Custom EventListener Ċ Ċ /** Ċ Ġ* ĠA Ġlistener Ġfor Ġdispatch Ġthe Ġ[ Socket Custom EventListener ] Ġevents . Ċ Ġ*/ Ċ class ĠCustom EventDispatcher ( ĊĠĠĠ Ġoverride Ġval Ġsocket Channel Listener : ĠSocket Channel Listener , ĊĠĠĠ Ġoverride Ġval Ġcustom Event Listeners : ĠMutable Set < Socket Custom EventListener > Ġ= Ġlinked Set Of () Ċ ) Ġ: ĠSocket Dispatcher Contract . Custom EventDispatcher Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Event ( custom Event : ĠSocket Custom Event , Ġresponse : ĠSocket Receive <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent Ġ= Ġcustom Event . event Builder ( response ) ĊĠĠĠĠĠĠĠ Ġif Ġ( event Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNull Ġevent Ġmeans Ġthe Ġevent Ġis Ġnot Ġimplemented , Ġor Ġthe Ġdata Ġdon 't Ġmatch Ġthe Ġevent Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . error ?. let ( socket Channel Listener :: onError ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcustom Event Listeners . forEach Ġ{ Ġit . on Event ( event ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ