/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 2 ĠMat thew ĠN el son Ċ Ġ* Ċ Ġ* Ġ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 Ġio . mat the wn el son . k mp . tor . ext . callback . manager Ċ Ċ import Ġio . mat the wn el son . k mp . tor . common . address . On ion Address Ċ import Ġio . mat the wn el son . k mp . tor . common . address . On ion Address V 3 Ċ import Ġio . mat the wn el son . k mp . tor . common . annotation . Internal Tor Api Ċ import Ġio . mat the wn el son . k mp . tor . common . client auth . Client Name Ċ import Ġio . mat the wn el son . k mp . tor . common . client auth . On ion Client Auth Ċ import Ġio . mat the wn el son . k mp . tor . common . server . Server Ċ import Ġio . mat the wn el son . k mp . tor . controller . common . config . Client Auth Entry Ċ import Ġio . mat the wn el son . k mp . tor . controller . common . config . Config Entry Ċ import Ġio . mat the wn el son . k mp . tor . controller . common . config . Hidden Service Entry Ċ import Ġio . mat the wn el son . k mp . tor . controller . common . config . Tor Config Ċ import Ġio . mat the wn el son . k mp . tor . controller . common . control . Tor Control On ion Client Auth Ċ import Ġio . mat the wn el son . k mp . tor . controller . common . control . use case . Tor Control Info Get Ċ import Ġio . mat the wn el son . k mp . tor . controller . common . control . use case . Tor Control On ion Add Ċ import Ġio . mat the wn el son . k mp . tor . controller . common . control . use case . Tor Control Signal Ċ import Ġio . mat the wn el son . k mp . tor . controller . common . events . Tor Event Ċ import Ġio . mat the wn el son . k mp . tor . controller . common . events . Tor Event Processor Ċ import Ġio . mat the wn el son . k mp . tor . ext . callback . common . Task Ċ import Ġio . mat the wn el son . k mp . tor . ext . callback . common . Tor Callback Ċ import Ġio . mat the wn el son . k mp . tor . ext . callback . controller . common .* Ċ import Ġio . mat the wn el son . k mp . tor . ext . callback . manager . common . Callback Tor Control Manager Ċ import Ġio . mat the wn el son . k mp . tor . ext . callback . manager . common . Callback Tor Operation Manager Ċ import Ġio . mat the wn el son . k mp . tor . manager . Tor Manager Ċ import Ġio . mat the wn el son . k mp . tor . manager . common . event . Tor Manager Event Ċ import Ġio . mat the wn el son . k mp . tor . manager . common . exceptions . Tor Manager Exception Ċ import Ġio . mat the wn el son . k mp . tor . manager . common . state . Tor Network State Ċ import Ġio . mat the wn el son . k mp . tor . manager . common . state . Tor State Ċ import Ġio . mat the wn el son . k mp . tor . manager . common . state . Tor StateManager Ċ import Ġkotlinx . coroutines .* Ċ Ċ /** Ċ Ġ* ĠWrapper Ġfor Ġ[ Tor Manager ] Ġsuch Ġthat Ġcallbacks Ċ Ġ* Ġcan Ġbe Ġused Ġin Ġli eu Ġof Ġsus pension Ġfunctions . Ċ Ġ* Ċ Ġ* Ġ@ sample Ġ[ io . mat the wn el son . k mp . tor . sample . java . android . App ] Ċ Ġ* Ġ*/ Ċ @ Opt In ( Internal Tor Api :: class ) Ċ class ĠCallback Tor Manager ( ĊĠĠĠ Ġprivate Ġval Ġdelegate : ĠTor Manager , ĊĠĠĠ Ġprivate Ġval Ġun caught ExceptionHandler : ĠTor Callback < Throwable >, Ċ ) Ġ: ĠCallback Destroy able , ĊĠĠĠ ĠCallback Tor Control Manager , ĊĠĠĠ ĠCallback Tor Operation Manager , ĊĠĠĠ ĠTor StateManager , ĊĠĠĠ ĠTor Event Processor < Tor Manager Event . Se aled Listener > Ċ { ĊĊĠĠĠ Ġval Ġinstance Id : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdelegate . instanceId ĊĊĠĠĠ Ġfun Ġdebug ( enable : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelegate . debug ( enable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġsupervisor Ġ= ĠSuper visor Job () ĊĠĠĠ Ġprivate Ġval Ġscope : ĠCor outine Scope ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdispatcher Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDispatch ers . Main . immediate ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠUnsupportedOperationException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDispatch ers . Main ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġscope Ġ= ĠCor outine Scope ( context Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdispatcher ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupervisor ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCor outine Name ( name Ġ= Ġ" Callback Tor Manager ") ĠĠĠĠĠĠĠĠĠ Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCor outine ExceptionHandler Ġ{ Ġ_, Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPass Ġall Ġexceptions Ġthat Ġare Ġthrown Ġfrom Ġrequests ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTor Callbacks Ġto Ġthe Ġhandler . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġun caught ExceptionHandler . invoke ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Destroyed : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdelegate . is Destroyed ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy ( stop Clean ly : ĠBoolean , Ġcallback : ĠTor Callback < Any ?> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelegate . destroy ( stop Clean ly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupervisor . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġstate : ĠTor State ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdelegate . state ĊĠĠĠ Ġoverride Ġval Ġnetwork State : ĠTor Network State ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdelegate . network State ĊĠĠĠ Ġoverride Ġval Ġaddress Info : ĠTor Manager Event . Address Info ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdelegate . address Info ĊĊĠĠĠ Ġoverride Ġfun Ġadd Listener ( listener : ĠTor Manager Event . Se aled Listener ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdelegate . addListener ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Listener ( listener : ĠTor Manager Event . Se aled Listener ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdelegate . remove Listener ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart ( ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Quiet ly () Ġ{ ĊĠĠĠĠĠĠĠ Ġdelegate . start Quiet ly () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrestart ( ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrestart () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrestart Quiet ly () Ġ{ ĊĠĠĠĠĠĠĠ Ġdelegate . restart Quiet ly () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop ( ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop Quiet ly () Ġ{ ĊĠĠĠĠĠĠĠ Ġdelegate . stop Quiet ly () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Get ( ĊĠĠĠĠĠĠĠ Ġsetting : ĠTor Config . Setting <* >, ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < List < Config Entry >> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Get ( setting ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Get ( ĊĠĠĠĠĠĠĠ Ġsettings : ĠSet < Tor Config . Setting <* >>, ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < List < Config Entry >> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Get ( settings ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Load ( ĊĠĠĠĠĠĠĠ Ġconfig : ĠTor Config , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Load ( config ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Reset ( ĊĠĠĠĠĠĠĠ Ġsetting : ĠTor Config . Setting <* >, ĊĠĠĠĠĠĠĠ ĠsetDefault : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Reset ( setting ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Reset ( ĊĠĠĠĠĠĠĠ Ġsettings : ĠSet < Tor Config . Setting <* >>, ĊĠĠĠĠĠĠĠ ĠsetDefault : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Reset ( settings , ĠsetDefault ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Save ( ĊĠĠĠĠĠĠĠ Ġforce : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Save ( force ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Set ( ĊĠĠĠĠĠĠĠ Ġsetting : ĠTor Config . Setting <* >, ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Set ( setting ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Set ( ĊĠĠĠĠĠĠĠ Ġsettings : ĠSet < Tor Config . Setting <* >>, ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Set ( settings ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdrop Gu ards ( ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrop Gu ards () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhs Fetch ( ĊĠĠĠĠĠĠĠ Ġaddress : ĠOn ion Address , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhs Fetch ( address ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhs Fetch ( ĊĠĠĠĠĠĠĠ Ġaddress : ĠOn ion Address , ĊĠĠĠĠĠĠĠ Ġserver : ĠServer . Fingerprint , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhs Fetch ( address , Ġserver ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhs Fetch ( ĊĠĠĠĠĠĠĠ Ġaddress : ĠOn ion Address , ĊĠĠĠĠĠĠĠ Ġservers : ĠSet < Server . Fingerprint >, ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhs Fetch ( address , Ġservers ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinfo Get ( ĊĠĠĠĠĠĠĠ Ġkeyword : ĠTor Control Info Get . Key Word , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < String > ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Get ( keyword ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinfo Get ( ĊĠĠĠĠĠĠĠ Ġkeywords : ĠSet < Tor Control Info Get . Key Word >, ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Map < String , ĠString >> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Get ( keywords ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ion Add ( ĊĠĠĠĠĠĠĠ ĠprivateKey : ĠOn ion Address . PrivateKey , ĊĠĠĠĠĠĠĠ Ġhs Ports : ĠSet < Tor Config . Setting . Hidden Service . Ports >, ĊĠĠĠĠĠĠĠ Ġflags : ĠSet < Tor Control On ion Add . Flag > ?, ĊĠĠĠĠĠĠĠ Ġmax Streams : ĠTor Config . Setting . Hidden Service . Max Streams ?, ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Hidden Service Entry > ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ion Add ( privateKey , Ġhs Ports , Ġflags , Ġmax Streams ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ion AddNew ( ĊĠĠĠĠĠĠĠ Ġtype : ĠOn ion Address . PrivateKey . Type , ĊĠĠĠĠĠĠĠ Ġhs Ports : ĠSet < Tor Config . Setting . Hidden Service . Ports >, ĊĠĠĠĠĠĠĠ Ġflags : ĠSet < Tor Control On ion Add . Flag > ?, ĊĠĠĠĠĠĠĠ Ġmax Streams : ĠTor Config . Setting . Hidden Service . Max Streams ?, ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Hidden Service Entry > ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ion AddNew ( type , Ġhs Ports , Ġflags , Ġmax Streams ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ion Del ( ĊĠĠĠĠĠĠĠ Ġaddress : ĠOn ion Address , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ion Del ( address ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ion Client Auth Add ( ĊĠĠĠĠĠĠĠ Ġaddress : ĠOn ion Address V 3 , ĊĠĠĠĠĠĠĠ Ġkey : ĠOn ion Client Auth . PrivateKey , ĊĠĠĠĠĠĠĠ Ġclient Name : ĠClient Name ?, ĊĠĠĠĠĠĠĠ Ġflags : ĠSet < Tor Control On ion Client Auth . Flag > ?, ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ion Client Auth Add ( address , Ġkey , Ġclient Name , Ġflags ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ion Client Auth Remove ( ĊĠĠĠĠĠĠĠ Ġaddress : ĠOn ion Address V 3 , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ion Client Auth Remove ( address ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ion Client Auth View ( ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < List < Client Auth Entry >> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ion Client Auth View () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ion Client Auth View ( ĊĠĠĠĠĠĠĠ Ġaddress : ĠOn ion Address V 3 , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Client Auth Entry > ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ion Client Auth View ( address ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Events ( ĊĠĠĠĠĠĠĠ Ġevents : ĠSet < Tor Event >, ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Events ( events ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsignal ( ĊĠĠĠĠĠĠĠ Ġsignal : ĠTor Control Signal . Signal , ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < Any ?> ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide OrFail ( failure , Ġsuccess ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignal ( signal ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T : ĠAny ?> Ġprovide OrFail ( ĊĠĠĠĠĠĠĠ Ġfailure : ĠTor Callback < Throwable > ?, ĊĠĠĠĠĠĠĠ Ġsuccess : ĠTor Callback < T >, ĊĠĠĠĠĠĠĠ Ġblock : Ġsuspend ĠTor Manager . () Ġ-> ĠResult < T >, ĊĠĠĠ Ġ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġfailure . should Fail Immediate ly ( is Destroyed , Ġ{ Ġun caught ExceptionHandler Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTor Manager Exception (" Tor Manager Ġinstance Ġhas Ġbeen Ġdestroyed ") ĊĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ Ġempty Task Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupervisor . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty Task ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock . invoke ( delegate ). to Callback ( failure , Ġsuccess ) ĊĠĠĠĠĠĠĠ Ġ}. to Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠJob . to Task (): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠTask Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval ĠisActive : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis @ to Task . isActive ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġis Completed : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis @ to Task . is Completed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġis Cancelled : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis @ to Task . is Cancelled ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcancel () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ to Task . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ