peekTo

expect abstract fun peekTo(destination: Memory, destinationOffset: Long, offset: Long = 0, min: Long = 1, max: Long = Long.MAX_VALUE): Long

Try to copy at least min but up to max bytes to the specified destination buffer from this input skipping offset bytes. If there are not enough bytes available to provide min bytes after skipping offset bytes then it will trigger the underlying source reading first and after that will simply copy available bytes even if EOF encountered so min is not a requirement but a desired number of bytes. It is safe to specify max greater than the destination free space. min shouldn't be bigger than the destination free space. This function could trigger the underlying source reading that may lead to blocking I/O. It is allowed to specify too big offset so in this case this function will always return 0 after prefetching all underlying bytes but note that it may lead to significant memory consumption. This function usually copy more bytes than min (unless max = min) but it is not guaranteed. When 0 is returned with offset = 0 then it makes sense to check endOfInput.

Return

number of bytes copied to the destination possibly 0

Parameters

destination

to write bytes

offset

to skip input

min

bytes to be copied, shouldn't be greater than the buffer free space. Could be 0.

max

bytes to be copied even if there are more bytes buffered, could be Int.MAX_VALUE.


expect open fun peekTo(buffer: IoBuffer): Int

Copy available bytes to the specified buffer but keep them available. The underlying implementation could trigger bytes population from the underlying source and block until any bytes available.

Very similar to readAvailable but don't discard copied bytes.

Return

number of bytes were copied

actual abstract fun peekTo(destination: Memory, destinationOffset: Long, offset: Long = 0, min: Long = 1, max: Long = Long.MAX_VALUE): Long

Copy at least min but up to max bytes to the specified destination buffer from this input skipping offset bytes. If there are not enough bytes available to provide min bytes then it fails with an exception. It is safe to specify max > destination.writeRemaining but min shouldn't be bigger than the destination free space. This function could trigger the underlying source reading that may lead to blocking I/O. It is safe to specify too big offset but only if min = 0, fails otherwise. This function usually copy more bytes than min (unless max = min).

Return

number of bytes copied to the destination possibly 0

Parameters

destination

to write bytes

offset

to skip input

min

bytes to be copied, shouldn't be greater than the buffer free space. Could be 0.

max

bytes to be copied even if there are more bytes buffered, could be Int.MAX_VALUE.

Throws

when not enough bytes available to provide


actual open fun peekTo(buffer: IoBuffer): Int

Copy available bytes to the specified buffer but keep them available. If the underlying implementation could trigger bytes population from the underlying source and block until any bytes available

Very similar to readAvailable but don't discard copied bytes.

Return

number of bytes were copied

actual abstract fun peekTo(destination: Memory, destinationOffset: Long, offset: Long = 0, min: Long = 1, max: Long = Long.MAX_VALUE): Long

Copy at least min but up to max bytes to the specified destination buffer from this input skipping offset bytes. If there are not enough bytes available to provide min bytes then it fails with an exception. It is safe to specify max > destination.writeRemaining but min shouldn't be bigger than the destination free space. This function could trigger the underlying source reading that may lead to blocking I/O. It is safe to specify too big offset but only if min = 0, fails otherwise. This function usually copy more bytes than min (unless max = min).

Return

number of bytes copied to the destination possibly 0

Parameters

destination

to write bytes

offset

to skip input

min

bytes to be copied, shouldn't be greater than the buffer free space. Could be 0.

max

bytes to be copied even if there are more bytes buffered, could be Int.MAX_VALUE.

Throws

when not enough bytes available to provide


actual open fun peekTo(buffer: IoBuffer): Int

Copy available bytes to the specified buffer but keep them available. If the underlying implementation could trigger bytes population from the underlying source and block until any bytes available

Very similar to readAvailable but don't discard copied bytes.

Return

number of bytes were copied

actual abstract fun peekTo(destination: Memory, destinationOffset: Long, offset: Long = 0, min: Long = 1, max: Long = Long.MAX_VALUE): Long

Copy at least min but up to max bytes to the specified destination buffer from this input skipping offset bytes. If there are not enough bytes available to provide min bytes then it fails with an exception. It is safe to specify max > destination.writeRemaining but min shouldn't be bigger than the destination free space. This function could trigger the underlying source reading that may lead to blocking I/O. It is safe to specify too big offset but only if min = 0, fails otherwise. This function usually copy more bytes than min (unless max = min).

Return

number of bytes copied to the destination possibly 0

Parameters

destination

to write bytes

offset

to skip input

min

bytes to be copied, shouldn't be greater than the buffer free space. Could be 0.

max

bytes to be copied even if there are more bytes buffered, could be Int.MAX_VALUE.

Throws

when not enough bytes available to provide


actual open fun peekTo(buffer: IoBuffer): Int

Copy available bytes to the specified buffer but keep them available. If the underlying implementation could trigger bytes population from the underlying source and block until any bytes available

Very similar to readAvailable but don't discard copied bytes.

Return

number of bytes were copied