// ĠVer i Block ĠNode Core Ċ // ĠCopyright Ġ 2 0 1 7 - 2 0 2 0 ĠX en ios ĠSE ZC Ċ // ĠAll Ġrights Ġreserved . Ċ // Ġhttps :// www . ver ib lock . org Ċ // ĠDistributed Ġunder Ġthe ĠMIT Ġsoftware Ġlicense , Ġsee Ġthe Ġaccompanying Ċ // Ġfile ĠLICENSE Ġor Ġhttp :// www . opensource . org / licenses / mit - license . php . Ċ Ċ package Ġorg . ver ib lock . min ers . pop . api . controller Ċ Ċ import Ġcom . pap sign . ktor . open ap igen . annotations . Path Ċ import Ġcom . pap sign . ktor . open ap igen . annotations . parameters . QueryParam Ċ import Ġcom . pap sign . ktor . open ap igen . route . info Ċ import Ġcom . pap sign . ktor . open ap igen . route . path . normal . Normal Open API Route Ċ import Ġcom . pap sign . ktor . open ap igen . route . path . normal . post Ċ import Ġcom . pap sign . ktor . open ap igen . route . response . respond Ċ import Ġmu . Kotlin Logging Ċ import Ġorg . ver ib lock . min ers . pop . EventBus Ċ import Ġjava . lang . Thread . sleep Ċ import Ġjava . util . concurrent . Executors Ċ Ċ private Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{} Ċ Ċ class ĠQu it Controller Ġ: ĠApi Controller Ġ{ ĊĊĠĠĠ Ġ@ Path (" quit ") ĊĠĠĠ Ġdata Ġclass ĠQu it Path ( ĊĠĠĠĠĠĠĠ Ġ@ QueryParam (" External Ġquit ") Ġval Ġrestart : ĠBoolean ? ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠNormal Open API Route . register Api () Ġ{ ĊĠĠĠĠĠĠĠ Ġpost < Quit Path , ĠUnit , ĠUnit >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" Ex its Ġthe Ġapplication ") ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġlocation , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Termin ating Ġthe Ġminer Ġnow ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquit Reason Ġ= Ġif Ġ( location . restart Ġ== Ġtrue ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquit Executor Ġ= ĠExec utors . new Single Thread Executor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquit Executor . submit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsleep ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . program Quit Event . trigger ( quit Reason ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( Unit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ