ByteWriteChannel

Channel for asynchronous writing of sequences of bytes. This is a single-writer channel.

Operations on this channel cannot be invoked concurrently, unless explicitly specified otherwise in the description. Exceptions are close and flush.

Inheritors

Properties

Link copied to clipboard
abstract val closedCause: Throwable?
Link copied to clipboard
Link copied to clipboard
abstract val writeBuffer: Sink

Functions

Link copied to clipboard
Link copied to clipboard
abstract fun cancel(cause: Throwable?)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
abstract suspend fun flush()
Link copied to clipboard
abstract suspend fun flushAndClose()
Link copied to clipboard
Link copied to clipboard

Create blocking java.io.OutputStream for this channel that does block every time the channel suspends at write Similar to do reading in runBlocking however you can pass it to regular blocking API

Link copied to clipboard
suspend fun ByteWriteChannel.write(desiredSpace: Int = 1, block: (ByteArray, Int, Int) -> Int): Int

Await for desiredSpace will be available for write and invoke block function providing Memory instance and the corresponding range suitable for wiring in the memory. The block function should return number of bytes were written, possibly 0.

suspend fun ByteWriteChannel.write(min: Int = 1, block: (buffer: ByteBuffer) -> Unit)
Link copied to clipboard

Invokes block if it is possible to write at least min byte providing byte buffer to it so lambda can write to the buffer up to ByteBuffer.remaining bytes. If there are no min bytes spaces available then the invocation returns 0.

Link copied to clipboard
suspend fun ByteWriteChannel.writeBuffer(value: Source)
Link copied to clipboard
suspend fun ByteWriteChannel.writeByte(value: Byte)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
suspend fun ByteWriteChannel.writeFully(value: ByteArray, startIndex: Int = 0, endIndex: Int = value.size)
suspend fun ByteWriteChannel.writeFully(value: CPointer<ByteVar>, offset: Int, length: Int)
suspend fun ByteWriteChannel.writeFully(src: CPointer<ByteVar>, offset: Long, length: Long)
Link copied to clipboard
suspend fun ByteWriteChannel.writeInt(value: Int)
Link copied to clipboard
suspend fun ByteWriteChannel.writeLong(value: Long)
Link copied to clipboard
suspend fun ByteWriteChannel.writePacket(copy: Buffer)
suspend fun ByteWriteChannel.writePacket(copy: Source)
Link copied to clipboard
suspend fun ByteWriteChannel.writeShort(value: Short)
Link copied to clipboard
suspend fun ByteWriteChannel.writeSource(source: Source)
Link copied to clipboard
suspend fun ByteWriteChannel.writeString(value: String)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
inline suspend fun ByteWriteChannel.writeWhile(crossinline block: (ByteBuffer) -> Boolean)