diff --git a/src/dorkbox/network/rmi/messages/MethodResponse.kt b/src/dorkbox/network/rmi/messages/MethodResponse.kt index c24265c4..4cb3129c 100644 --- a/src/dorkbox/network/rmi/messages/MethodResponse.kt +++ b/src/dorkbox/network/rmi/messages/MethodResponse.kt @@ -34,24 +34,22 @@ */ package dorkbox.network.rmi.messages +import dorkbox.network.rmi.RmiUtils + /** * Internal message to return the result of a remotely invoked method. */ class MethodResponse : RmiMessage { - // if this object was a global or connection specific object - var isGlobal: Boolean = false - - // the registered kryo ID for the object - var objectId: Int = 0 - - // ID to match requests <-> responses - var responseId: Int = 0 + // this is packed + // LEFT -> rmiObjectId (the registered rmi ID) + // RIGHT -> rmiId (ID to match requests <-> responses) + var packedId: Int = 0 // this is the result of the invoked method var result: Any? = null override fun toString(): String { - return "MethodResponse(isGlobal=$isGlobal, objectId=$objectId, responseId=$responseId, result=$result)" + return "MethodResponse(rmiObjectId=${RmiUtils.unpackLeft(packedId)}, rmiId=${RmiUtils.unpackRight(packedId)}, result=$result)" } } diff --git a/src/dorkbox/network/rmi/messages/MethodResponseSerializer.kt b/src/dorkbox/network/rmi/messages/MethodResponseSerializer.kt index 786abd1b..bf38b148 100644 --- a/src/dorkbox/network/rmi/messages/MethodResponseSerializer.kt +++ b/src/dorkbox/network/rmi/messages/MethodResponseSerializer.kt @@ -19,22 +19,16 @@ import com.esotericsoftware.kryo.Kryo import com.esotericsoftware.kryo.Serializer import com.esotericsoftware.kryo.io.Input import com.esotericsoftware.kryo.io.Output -import dorkbox.network.rmi.RmiUtils class MethodResponseSerializer() : Serializer() { override fun write(kryo: Kryo, output: Output, response: MethodResponse) { - output.writeInt(RmiUtils.packShorts(response.objectId, response.responseId), true) - output.writeBoolean(response.isGlobal) + output.writeInt(response.packedId) kryo.writeClassAndObject(output, response.result) } override fun read(kryo: Kryo, input: Input, type: Class): MethodResponse { - val packedInfo = input.readInt(true) - val response = MethodResponse() - response.objectId = RmiUtils.unpackLeft(packedInfo) - response.responseId = RmiUtils.unpackRight(packedInfo) - response.isGlobal = input.readBoolean() + response.packedId = input.readInt() response.result = kryo.readClassAndObject(input) return response