org.jetbrains.kotlin.daemon.common.experimental.ReplStateFacadeServerSide.kt Maven / Gradle / Ivy
/*
* Copyright 2010-2018 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.common.experimental
import org.jetbrains.kotlin.cli.common.repl.ILineId
import org.jetbrains.kotlin.daemon.common.ReplStateFacadeAsync
import org.jetbrains.kotlin.daemon.common.experimental.socketInfrastructure.ByteWriteChannelWrapper
import org.jetbrains.kotlin.daemon.common.experimental.socketInfrastructure.Server
interface ReplStateFacadeServerSide: ReplStateFacadeAsync, Server {
// Query messages:
class GetIdMessage : Server.Message() {
override suspend fun processImpl(server: ReplStateFacadeServerSide, sendReply: (Any?) -> Unit) =
sendReply(server.getId())
}
class GetHistorySizeMessage : Server.Message() {
override suspend fun processImpl(server: ReplStateFacadeServerSide, sendReply: (Any?) -> Unit) =
sendReply(server.getHistorySize())
}
class HistoryGetMessage(val index: Int) : Server.Message() {
override suspend fun processImpl(server: ReplStateFacadeServerSide, sendReply: (Any?) -> Unit) =
sendReply(server.historyGet(index))
}
class HistoryResetMessage : Server.Message() {
override suspend fun processImpl(server: ReplStateFacadeServerSide, sendReply: (Any?) -> Unit) =
sendReply(server.historyReset())
}
class HistoryResetToMessage(val id: ILineId) : Server.Message() {
override suspend fun processImpl(server: ReplStateFacadeServerSide, sendReply: (Any?) -> Unit) =
sendReply(server.historyResetTo(id))
}
}