/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ċ Ġ* Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . daemon . client Ċ Ċ import Ġorg . jetbrains . kotlin . cli . common . messages . Message Collector Ċ import Ġorg . jetbrains . kotlin . daemon . client . Kotlin Compiler Daemon Client . Companion . instantiate Ċ import Ġorg . jetbrains . kotlin . daemon . common .* Ċ import Ġorg . jetbrains . kotlin . daemon . common . Report Severity Ċ import Ġorg . jetbrains . kotlin . daemon . common . Dummy Profiler Ċ import Ġorg . jetbrains . kotlin . daemon . common . Profiler Ċ import Ġjava . io . File Ċ Ċ data Ġclass ĠCompile Service Session Async ( val Ġcompile Service : ĠCompile Service Async , Ġval ĠsessionId : ĠInt ) Ċ Ċ fun ĠCompile Service Session . to Async () Ġ= ĠCompile Service Session Async ( this . compile Service . to Client (), Ġthis . sessionId ) Ċ fun ĠCompile Service Session Async . to R MI () Ġ= ĠCompile Service Session ( this . compile Service . to R MI (), Ġthis . sessionId ) Ċ Ċ interface ĠKotlin Compiler Daemon Client Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġconnect To Compile Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompiler Id : ĠCompiler Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdaemon JVM Options : ĠDa emon JVM Options , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdaemon Options : ĠDa emon Options , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreporting Targets : ĠDa emon Reporting Targets , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaut ost art : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Id : ĠBoolean ĊĠĠĠ Ġ): ĠCompile Service Async ? ĊĊĠĠĠ Ġsuspend Ġfun Ġconnect To Compile Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompiler Id : ĠCompiler Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Alive Flag File : ĠFile , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdaemon JVM Options : ĠDa emon JVM Options , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdaemon Options : ĠDa emon Options , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreporting Targets : ĠDa emon Reporting Targets , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaut ost art : ĠBoolean ĊĠĠĠ Ġ): ĠCompile Service Async ? ĊĊĠĠĠ Ġsuspend Ġfun Ġconnect And Lease ( ĊĠĠĠĠĠĠĠ Ġcompiler Id : ĠCompiler Id , ĊĠĠĠĠĠĠĠ Ġclient Alive Flag File : ĠFile , ĊĠĠĠĠĠĠĠ Ġdaemon JVM Options : ĠDa emon JVM Options , ĊĠĠĠĠĠĠĠ Ġdaemon Options : ĠDa emon Options , ĊĠĠĠĠĠĠĠ Ġreporting Targets : ĠDa emon Reporting Targets , ĊĠĠĠĠĠĠĠ Ġaut ost art : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġlease Session : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġsession Alive Flag File : ĠFile ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠCompile Service Session Async ? ĊĊĠĠĠ Ġsuspend Ġfun Ġshutdown Compile Service ( compiler Id : ĠCompiler Id , Ġdaemon Options : ĠDa emon Options ) ĊĊĠĠĠ Ġsuspend Ġfun Ġlease Compile Session ( compiler Service : ĠCompile Service Async , Ġalive Flag Path : ĠString ?): ĠInt ĊĠĠĠ Ġsuspend Ġfun Ġrelease Compile Session ( compiler Service : ĠCompile Service Async , ĠsessionId : ĠInt ): ĠUnit ĊĠĠĠ Ġsuspend Ġfun Ġcompile ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompiler Service : ĠCompile Service Async , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsessionId : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Platform : ĠCompile Service . Target Platform , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs : ĠArray < out ĠString >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Collector : ĠMessage Collector , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs Collector : Ġ(( File , ĠList < File >) Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompiler Mode : ĠCompiler Mode Ġ= ĠCompiler Mode . NON _ INCREMENT AL _ COMPILER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreport Severity : ĠReport Severity Ġ= ĠReport Severity . INFO , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġport : ĠInt Ġ= ĠSOCKET _ ANY _ FREE _ PORT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofiler : ĠProfiler Ġ= ĠDummy Profiler () ĊĠĠĠ Ġ): ĠInt ĊĊĠĠĠ Ġfun Ġget OrCreate Client Flag File ( daemon Options : ĠDa emon Options ): ĠFile ĊĊĠĠĠ Ġfun Ġcreate Comp Results (): ĠCompilation Results Async ĊĊĠĠĠ Ġfun Ġmain ( var arg Ġargs : ĠString ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġinstantiate ( daemon Protocol Variant : ĠDa emon Protocol Variant ): ĠKotlin Compiler Daemon Client Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Compiler Daemon Client :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. class Loader ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load Class ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( daemon Protocol Variant ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDa emon Protocol Variant . R MI Ġ-> Ġ" org . jetbrains . kotlin . daemon . client . impl s . Kotlin Compiler Client Impl " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDa emon Protocol Variant . SOCKET S Ġ-> Ġ" org . jetbrains . kotlin . daemon . client . experimental . Kotlin Compiler Client " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. newInstance () Ġas ĠKotlin Compiler Daemon Client ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ object ĠKotlin Compiler Client Instance Ġ{ ĊĊĠĠĠ Ġconst Ġval ĠR MI _ FLAG Ġ= Ġ"- old " ĊĠĠĠ Ġconst Ġval ĠSOCKET S _ FLAG Ġ= Ġ"- new _ with _ sockets " ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmain ( var arg Ġargs : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclient Instance : ĠKotlin Compiler Daemon Client ? Ġ= Ġwhen Ġ( args . last ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSOCKET S _ FLAG Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstantiate ( Daemon Protocol Variant . SOCKET S ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstantiate ( Daemon Protocol Variant . R MI ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġclient Instance ?. main (* args . slice Array ( 0 .. args . last Index )) ĊĠĠĠ Ġ} Ċ Ċ }