package Ġcom . ns . greg . library . mqtt _ manager . internal . action Ċ Ċ import Ġcom . ns . greg . library . mqtt _ manager . external . Logger Level . ALL Ċ import Ġcom . ns . greg . library . mqtt _ manager . internal . Mqtt Logger Ċ import Ġcom . ns . greg . library . mqtt _ manager . external . topic . Mqtt Topic Ċ import Ġcom . ns . greg . library . mqtt _ manager . internal . client . Async Client Wrapper Ċ import Ġorg . eclipse . p aho . client . mqtt v 3 . IM qtt Token Ċ Ċ /** Ċ Ġ* Ġ@ author Ġg reg ho Ċ Ġ* Ġ@ since Ġ 2 0 1 9 - 0 6 - 1 9 Ċ Ġ*/ Ċ internal Ġclass ĠUn subscribe Action < T Ġ: ĠM qtt Topic > Ġ: ĠTopic Action < T > Ġ{ ĊĊĠ Ġprivate Ġval Ġmqtt Topic List Ġ= Ġmutable ListOf < T >() ĊĠ Ġprivate Ġval Ġtopic : ĠArray < String > ĊĊĠ Ġ@ Jvm Over loads ĊĠ Ġconstructor ( ĊĠĠĠ Ġclient Wrapper : ĠAsync Client Wrapper , ĊĠĠĠ Ġretries : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġmqtt Topic : ĠT ĊĠ Ġ) Ġ: Ġsuper ( client Wrapper , Ġretries ) Ġ{ ĊĠĠĠ Ġthis . mqtt Topic List . add ( mqtt Topic ) ĊĠĠĠ Ġthis . topic Ġ= ĠarrayOf ( mqtt Topic . topic ) ĊĠ Ġ} ĊĊĠ Ġ@ Jvm Over loads ĊĠ Ġconstructor ( ĊĠĠĠ Ġclient Wrapper : ĠAsync Client Wrapper , ĊĠĠĠ Ġretries : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġmqtt Topic List : ĠList < T > ĊĠ Ġ) Ġ: Ġsuper ( client Wrapper , Ġretries ) Ġ{ ĊĠĠĠ Ġthis . mqtt Topic List . addAll ( mqtt Topic List ) ĊĠĠĠ Ġval Ġsize Ġ= Ġmqtt Topic List . size ĊĠĠĠ Ġthis . topic Ġ= ĠArray ( size ) Ġ{ Ġ"" Ġ} ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġsize ) Ġ{ ĊĠĠĠĠĠ Ġval Ġitem Ġ= Ġthis . mqtt Topic List [ i ] ĊĠĠĠĠĠ Ġtopic [ i ] Ġ= Ġitem . topic ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġexecute () Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġclient Wrapper . client . unsubscribe ( topic , Ġnull , Ġthis ) ĊĠĠĠĠĠ Ġval Ġsize Ġ= Ġmqtt Topic List . size ĊĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* Ġdebug Ġ*/ ĊĠĠĠĠĠĠĠ ĠM qtt Logger . log ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Un subscribe Action ", Ġ" EXECUTE ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ client Wrapper . client . clientId } Ġun sub scri bing Ġtopic ... Ġ( T : Ġ${ topic [ i ]}) ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠALL ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonSuccess ( async Action Token : ĠIM qtt Token ?) Ġ{ ĊĠĠĠ Ġfor Ġ( mqtt Topic Ġin Ġmqtt Topic List ) Ġ{ ĊĠĠĠĠĠ ĠM qtt Logger . log ( ĊĠĠĠĠĠĠĠĠĠ Ġ" Un subscribe Action ", Ġ" ON _ SUCCESS ", ĊĠĠĠĠĠĠĠĠĠ Ġ"${ client Wrapper . client . clientId } Ġun subscribed Ġ( T : Ġ$ mqtt Topic )", ĊĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠALL ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ Ġmqtt ActionListener ?. invoke ( mqtt Topic , Ġbyte ArrayOf (), Ġnull ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Failure ( ĊĠĠĠ Ġasync Action Token : ĠIM qtt Token ?, ĊĠĠĠ Ġexception : ĠThrowable ? ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġfor Ġ( mqtt Topic Ġin Ġmqtt Topic List ) Ġ{ ĊĠĠĠĠĠ Ġ/* Ġdebug Ġ*/ ĊĠĠĠĠĠ ĠM qtt Logger . log ( ĊĠĠĠĠĠĠĠĠĠ Ġ" Un subscribe Action ", Ġ" ON _ FAILURE ", ĊĠĠĠĠĠĠĠĠĠ Ġ"${ client Wrapper . client . clientId } Ġunsubscribe Ġfailed Ġ( T : Ġ$ mqtt Topic ), Ġexception : Ġ$ exception ", ĊĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠALL ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġmqtt ActionListener ?. invoke ( mqtt Topic , Ġbyte ArrayOf (), Ġexception ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }