JS: cache metadata, grouped by package FQN

This commit is contained in:
Anton Bannykh
2019-04-12 20:54:49 +03:00
parent c1f69ca8d6
commit c3170d1908
13 changed files with 214 additions and 45 deletions
@@ -112,6 +112,9 @@ interface CompilerCallbackServicesFacade : Remote {
@Throws(RemoteException::class)
fun incrementalResultsConsumer_processInlineFunctions(functions: Collection<JsInlineFunctionHash>)
@Throws(RemoteException::class)
fun incrementalResultsConsumer_processPackageMetadata(packageName: String, metadata: ByteArray)
// ---------------------------------------------------
// IncrementalDataProvider (js)
@Throws(RemoteException::class)
@@ -122,6 +125,9 @@ interface CompilerCallbackServicesFacade : Remote {
@Throws(RemoteException::class)
fun incrementalDataProvider_getMetadataVersion(): IntArray
@Throws(RemoteException::class)
fun incrementalDataProvider_getPackageMetadata(): Collection<PackageMetadata>
}
class CompiledPackagePart(
@@ -129,6 +135,17 @@ class CompiledPackagePart(
val metadata: ByteArray, val binaryAst: ByteArray, val inlineData: ByteArray
) : Serializable
class PackageMetadata(
val packageName: String,
val metadata: ByteArray
) : Serializable {
companion object {
// just a random number, but should never be changed to avoid deserialization problems
private val serialVersionUID: Long = 54021986502349756L
}
}
class RmiFriendlyCompilationCanceledException : Exception(), Serializable {
companion object {
// just a random number, but should never be changed to avoid deserialization problems