ReadCursor

final case class ReadCursor[F <: ([_$1] =>> Any)](file: FileHandle[F], offset: Long)
Associates a FileHandle with an offset in to the file.
This encapsulates the pattern of incrementally reading bytes in from a file,
a chunk at a time. Convenience methods are provided for working with pulls.
Companion
object
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Value members

Methods

def read(chunkSize: Int)(F: Functor[F]): F[Option[(ReadCursor[F], Chunk[Byte])]]
Reads a single chunk from the underlying file handle, returning the
read chunk and a new cursor with an offset incremented by the chunk size.
def readPull(chunkSize: Int): Pull[F, Nothing, Option[(ReadCursor[F], Chunk[Byte])]]
Like read but returns a pull instead of an F[(ReadCursor[F], Option[Chunk[Byte]])].
def readAll(chunkSize: Int): Pull[F, Byte, ReadCursor[F]]
Reads all chunks from the underlying file handle, returning a cursor
with offset incremented by the total number of bytes read.
def readUntil(chunkSize: Int, end: Long): Pull[F, Byte, ReadCursor[F]]
Reads chunks until the specified end position in the file. Returns a pull that outputs
the read chunks and completes with a cursor with offset incremented by the total number
of bytes read.
def seek(position: Long): ReadCursor[F]
Returns a new cursor with the offset adjusted to the specified position.
def tail(chunkSize: Int, pollDelay: FiniteDuration)(timer: Timer[F]): Pull[F, Byte, ReadCursor[F]]
Returns an infinite stream that reads until the end of the file and then starts
polling the file for additional writes. Similar to the tail command line utility.
Value Params
pollDelay
amount of time to wait upon reaching the end of the file before
polling for updates

Inherited methods

def productElementNames: Iterator[String]
Inhertied from
Product
def productIterator: Iterator[Any]
Inhertied from
Product