diff options
Diffstat (limited to 'src/main/kotlin/TransportLayerJavaNet.kt')
-rw-r--r-- | src/main/kotlin/TransportLayerJavaNet.kt | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/kotlin/TransportLayerJavaNet.kt b/src/main/kotlin/TransportLayerJavaNet.kt index 1085100..d2ee2af 100644 --- a/src/main/kotlin/TransportLayerJavaNet.kt +++ b/src/main/kotlin/TransportLayerJavaNet.kt @@ -30,6 +30,16 @@ class TransportLayerJavaNet : TransportLayer { constructor(address: String, port: UShort) constructor(fullAddress: String) + private class InStreamIterator(val inStream: InputStream) : Iterator<UByte> { + override fun next(): UByte { + return this.inStream.readNBytes(1).first().toUByte() + } + + override fun hasNext(): Boolean { + return this.inStream.available() > 0 + } + } + override fun close() { if (this.socket.isClosed) { return @@ -75,4 +85,8 @@ class TransportLayerJavaNet : TransportLayer { } return Array(bytes.size) { i -> bytes[i].toUByte() } } + + override fun receiver(): Iterable<UByte> { + return Iterable { InStreamIterator(this.inStream) } + } }
\ No newline at end of file |