Code polish

This commit is contained in:
nathan 2020-08-27 00:45:09 +02:00
parent fc28153ed4
commit e7a7ec9737
3 changed files with 8 additions and 7 deletions

View File

@ -71,11 +71,11 @@ internal class RmiManagerConnections<CONNECTION: Connection>(logger: KLogger,
/**
* on the "client" to create a connection-specific remote object (that exists on the server)
*/
suspend fun <Iface> createRemoteObject(connection: Connection, interfaceClassId: Int, objectParameters: Array<Any?>?, callback: suspend (Int, Iface) -> Unit) {
suspend fun <Iface> createRemoteObject(connection: Connection, kryoId: Int, objectParameters: Array<Any?>?, callback: suspend (Int, Iface) -> Unit) {
val callbackId = rmiGlobalSupport.registerCallback(callback)
// There is no rmiID yet, because we haven't created it!
val message = ConnectionObjectCreateRequest(RmiUtils.packShorts(interfaceClassId, callbackId), objectParameters)
val message = ConnectionObjectCreateRequest(RmiUtils.packShorts(kryoId, callbackId), objectParameters)
// We use a callback to notify us when the object is ready. We can't "create this on the fly" because we
// have to wait for the object to be created + ID to be assigned on the remote system BEFORE we can create the proxy instance here.
@ -89,12 +89,12 @@ internal class RmiManagerConnections<CONNECTION: Connection>(logger: KLogger,
*/
suspend fun onConnectionObjectCreateRequest(endPoint: EndPoint<CONNECTION>, connection: CONNECTION, message: ConnectionObjectCreateRequest) {
val interfaceClassId = RmiUtils.unpackLeft(message.packedIds)
val kryoId = RmiUtils.unpackLeft(message.packedIds)
val callbackId = RmiUtils.unpackRight(message.packedIds)
val objectParameters = message.objectParameters
// We have to lookup the iface, since the proxy object requires it
val implObject = endPoint.serialization.createRmiObject(interfaceClassId, objectParameters)
val implObject = endPoint.serialization.createRmiObject(kryoId, objectParameters)
val response = if (implObject is Exception) {
// whoops!

View File

@ -62,8 +62,8 @@ internal class RmiManagerGlobal<CONNECTION : Connection>(logger: KLogger,
// duplicates are fine, as they represent the same object (as specified by the ID) on the remote side.
val classId = serialization.getClassId(interfaceClass)
val cachedMethods = serialization.getMethods(classId)
val kryoClassId = serialization.getKryoIdForRmi(interfaceClass)
val cachedMethods = serialization.getMethods(kryoClassId)
val name = "<${connection.endPoint().type.simpleName}-proxy #$rmiId>"

View File

@ -31,8 +31,9 @@ internal class ClassRegistrationIfaceAndImpl(val ifaceClass: Class<*>,
id = registration.id
// override that registration
kryo.register(implClass, serializer, id).id
kryo.register(implClass, serializer, id)
} else {
// now register the impl class
id = kryo.register(implClass, serializer).id
}
}