jps: implement mpp and js daemon compiler services

#KT-24635 fixed
This commit is contained in:
Sergey Rostov
2018-05-30 12:40:23 +03:00
parent b2fedd7b1e
commit 1cbef873ec
9 changed files with 216 additions and 29 deletions
@@ -29,7 +29,10 @@ import java.rmi.RemoteException
* the reason for having common facade is attempt to reduce number of connections between client and daemon
* Note: non-standard naming convention used to denote combining several entities in one facade - prefix <entityName>_ is used for every function belonging to the entity
*/
@Deprecated("The usages should be replaced with `compile` method and `CompilerServicesFacadeBase` implementations", ReplaceWith("CompilerServicesFacadeBase"))
@Deprecated(
"The usages should be replaced with `compile` method and `CompilerServicesFacadeBase` implementations",
ReplaceWith("CompilerServicesFacadeBase")
)
interface CompilerCallbackServicesFacade : Remote {
@Throws(RemoteException::class)
@@ -41,6 +44,15 @@ interface CompilerCallbackServicesFacade : Remote {
@Throws(RemoteException::class)
fun hasCompilationCanceledStatus(): Boolean
@Throws(RemoteException::class)
fun hasExpectActualTracker(): Boolean
@Throws(RemoteException::class)
fun hasIncrementalResultsConsumer(): Boolean
@Throws(RemoteException::class)
fun hasIncrementalDataProvider(): Boolean
// ----------------------------------------------------
// IncrementalCache
@Throws(RemoteException::class)
@@ -82,11 +94,40 @@ interface CompilerCallbackServicesFacade : Remote {
// CompilationCanceledStatus
@Throws(RemoteException::class, RmiFriendlyCompilationCanceledException::class)
fun compilationCanceledStatus_checkCanceled(): Void?
// ---------------------------------------------------
// ExpectActualTracker
@Throws(RemoteException::class)
fun expectActualTracker_report(expectedFilePath: String, actualFilePath: String)
// ---------------------------------------------------
// IncrementalResultsConsumer (js)
@Throws(RemoteException::class)
fun incrementalResultsConsumer_processHeader(headerMetadata: ByteArray)
@Throws(RemoteException::class)
fun incrementalResultsConsumer_processPackagePart(sourceFilePath: String, packagePartMetadata: ByteArray, binaryAst: ByteArray)
@Throws(RemoteException::class)
fun incrementalResultsConsumer_processInlineFunction(sourceFilePath: String, fqName: String, inlineFunction: Any, line: Int, column: Int)
// ---------------------------------------------------
// IncrementalDataProvider (js)
@Throws(RemoteException::class)
fun incrementalDataProvider_getHeaderMetadata(): ByteArray
@Throws(RemoteException::class)
fun incrementalDataProvider_getCompiledPackageParts(): Collection<CompiledPackagePart>
}
class CompiledPackagePart(
val filePath: String,
val metadata: ByteArray, val binaryAst: ByteArray
) : Serializable
class RmiFriendlyCompilationCanceledException : Exception(), Serializable {
companion object {
private val serialVersionUID: Long = 8228357578L // just a random number, but should never be changed to avoid deserialization problems
private val serialVersionUID: Long =
8228357578L // just a random number, but should never be changed to avoid deserialization problems
}
}