diff --git a/src/dorkbox/serializers/Inet4AddressSerializer.kt b/src/dorkbox/serializers/Inet4AddressSerializer.kt new file mode 100644 index 0000000..e7668f2 --- /dev/null +++ b/src/dorkbox/serializers/Inet4AddressSerializer.kt @@ -0,0 +1,19 @@ +package dorkbox.serializers + +import com.esotericsoftware.kryo.Kryo +import com.esotericsoftware.kryo.Serializer +import com.esotericsoftware.kryo.io.Input +import com.esotericsoftware.kryo.io.Output +import java.net.Inet4Address +import java.net.InetAddress + +class Inet4AddressSerializer : Serializer() { + + override fun write(kryo: Kryo, output: Output, inetAddress: Inet4Address) { + output.writeBytes(inetAddress.address) + } + + override fun read(kryo: Kryo, input: Input, type: Class): Inet4Address { + return InetAddress.getByAddress(null, input.readBytes(4)) as Inet4Address + } +} diff --git a/src/dorkbox/serializers/Inet6AddressSerializer.kt b/src/dorkbox/serializers/Inet6AddressSerializer.kt new file mode 100644 index 0000000..421e99c --- /dev/null +++ b/src/dorkbox/serializers/Inet6AddressSerializer.kt @@ -0,0 +1,19 @@ +package dorkbox.serializers + +import com.esotericsoftware.kryo.Kryo +import com.esotericsoftware.kryo.Serializer +import com.esotericsoftware.kryo.io.Input +import com.esotericsoftware.kryo.io.Output +import java.net.Inet6Address +import java.net.InetAddress + +class Inet6AddressSerializer : Serializer() { + + override fun write(kryo: Kryo, output: Output, inetAddress: Inet6Address) { + output.writeBytes(inetAddress.address) // 16 bytes + } + + override fun read(kryo: Kryo, input: Input, type: Class): Inet6Address { + return InetAddress.getByAddress(input.readBytes(16)) as Inet6Address + } +} diff --git a/src/dorkbox/serializers/ZoneIdSerializer.kt b/src/dorkbox/serializers/ZoneIdSerializer.kt new file mode 100644 index 0000000..e635748 --- /dev/null +++ b/src/dorkbox/serializers/ZoneIdSerializer.kt @@ -0,0 +1,17 @@ +package dorkbox.serializers + +import com.esotericsoftware.kryo.Kryo +import com.esotericsoftware.kryo.Serializer +import com.esotericsoftware.kryo.io.Input +import com.esotericsoftware.kryo.io.Output +import java.time.ZoneId + +class ZoneIdSerializer: Serializer() { + override fun write(kryo: Kryo, output: Output, zoneId: ZoneId) { + output.writeString(zoneId.id) + } + + override fun read(kryo: Kryo, input: Input, type: Class): ZoneId { + return ZoneId.of(input.readString()) + } +}