final class BlockingFileOps extends GatheringByteOps with ScatteringByteOps
- Alphabetic
- By Inheritance
- BlockingFileOps
- ScatteringByteOps
- GatheringByteOps
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def channel: java.nio.channels.FileChannel
- Attributes
- protected[channels]
- Definition Classes
- BlockingFileOps → ScatteringByteOps → GatheringByteOps
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def force(metadata: Boolean)(implicit trace: Trace): IO[IOException, Unit]
Forces any updates to this channel's file to be written to the storage device that contains it.
Forces any updates to this channel's file to be written to the storage device that contains it.
- metadata
If true then this method is required to force changes to both the file's content and metadata to be written to storage; otherwise, it need only force content changes to be written
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def lock(position: Long = 0L, size: Long = Long.MaxValue, shared: Boolean = false)(implicit trace: Trace): IO[IOException, FileLock]
Acquires a lock on the given region of this channel's file.
Acquires a lock on the given region of this channel's file. An invocation of this method will block until the region can be locked, this channel is closed, or the invoking thread is interrupted, whichever comes first.
- position
The position at which the locked region is to start, must be >= 0
- size
The size of the locked region; must be >= 0, and the sum position + size must be >= 0
- shared
true to request a shared lock, in which case this channel must be open for reading (and possibly writing); false to request an exclusive lock, in which case this channel must be open for writing (and possibly reading)
- def map(mode: MapMode, position: Long, size: Long)(implicit trace: Trace): IO[IOException, MappedByteBuffer]
Maps a region of this channel's file directly into memory.
Maps a region of this channel's file directly into memory.
A region of a file may be mapped into memory in one of three modes:
- Read-only: Any attempt to modify the resulting buffer will cause a
ReadOnlyBufferException
to be thrown. (MapMode.READ_ONLY
) - Read/write: Changes made to the resulting buffer will eventually be propagated to the file; they may or may
not be made visible to other programs that have mapped the same file. (
MapMode.READ_WRITE
) - Private: Changes made to the resulting buffer will not be propagated to the file and will not be visible to
other programs that have mapped the same file; instead, they will cause private copies of the modified
portions of the buffer to be created. (
MapMode.PRIVATE
)
- mode
Indicates if the file is to be mapped read-only, read/write, or private (copy on write).
- position
The position within the file at which the mapped region is to start, must be >= 0
- size
The size of the region to be mapped, must be >= 0 and <=
Int.MaxValue
- Read-only: Any attempt to modify the resulting buffer will cause a
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def read(dst: ByteBuffer, position: Long)(implicit trace: Trace): IO[IOException, Int]
Reads a sequence of bytes from this channel into the given buffer, starting at the given file position.
Reads a sequence of bytes from this channel into the given buffer, starting at the given file position. This method works in the same manner as the
read(ByteBuffer)
method, except that bytes are read starting at the given file position rather than at the channel's current position. This method does not modify this channel's position. If the given position is greater than the file's current size then no bytes are read.- dst
The buffer to put the read bytes into
- position
The file position at which the transfer is to begin, must be >= 0
- final def read(dst: ByteBuffer)(implicit trace: Trace): IO[IOException, Int]
Reads a sequence of bytes from this channel into the given buffer.
Reads a sequence of bytes from this channel into the given buffer.
Fails with
java.io.EOFException
if end-of-stream is reached.- returns
The number of bytes read, possibly 0
- Definition Classes
- ScatteringByteOps
- final def read(dsts: Seq[ByteBuffer])(implicit trace: Trace): IO[IOException, Long]
Reads a sequence of bytes from this channel into the provided list of buffers, in order.
Reads a sequence of bytes from this channel into the provided list of buffers, in order.
Fails with
java.io.EOFException
if end-of-stream is reached.- returns
The number of bytes read in total, possibly 0
- Definition Classes
- ScatteringByteOps
- final def readChunk(capacity: Int)(implicit trace: Trace): IO[IOException, Chunk[Byte]]
Reads a chunk of bytes.
Reads a chunk of bytes.
Fails with
java.io.EOFException
if end-of-stream is reached.- capacity
The maximum number of bytes to be read.
- returns
The bytes read, between 0 and
capacity
in size, inclusive
- Definition Classes
- ScatteringByteOps
- final def readChunks(capacities: Seq[Int])(implicit trace: Trace): IO[IOException, List[Chunk[Byte]]]
Reads a sequence of bytes grouped into multiple chunks.
Reads a sequence of bytes grouped into multiple chunks.
Fails with
java.io.EOFException
if end-of-stream is reached.- capacities
For each int in this sequence, a chunk of that size is produced, if there is enough data in the channel.
- returns
A list with one
Chunk
per input size. Some chunks may be less than the requested size if the channel does not have enough data
- Definition Classes
- ScatteringByteOps
- def sink(bufferConstruct: UIO[ByteBuffer])(implicit trace: Trace): ZSink[Any, IOException, Byte, Byte, Long]
A sink that will write all the bytes it receives to this channel.
A sink that will write all the bytes it receives to this channel. The sink's result is the number of bytes written. Note: This method does not work well with a channel in non-blocking mode, as it will busy-wait whenever the channel is not ready for writes. The returned sink should be run within the context of a
useBlocking
call for correct blocking and interruption support.- bufferConstruct
Optional, overrides how to construct the buffer used to transfer bytes received by the sink to this channel. By default a heap buffer is used, but a direct buffer will usually perform better.
- Definition Classes
- GatheringByteOps
- def sink()(implicit trace: Trace): ZSink[Any, IOException, Byte, Byte, Long]
- Definition Classes
- GatheringByteOps
- def stream(bufferConstruct: UIO[ByteBuffer])(implicit trace: Trace): Stream[IOException, Byte]
A
ZStream
that reads from this channel.A
ZStream
that reads from this channel. Note: This method does not work well with a channel in non-blocking mode, as it will busy-wait whenever the channel is not ready for reads. The returned stream should be run within the context of auseBlocking
call for correct blocking and interruption support.The stream terminates without error if the channel reaches end-of-stream.
- bufferConstruct
Optional, overrides how to construct the buffer used to transfer bytes read from this channel into the stream. By default a heap buffer is used, but a direct buffer will usually perform better.
- Definition Classes
- ScatteringByteOps
- def stream()(implicit trace: Trace): Stream[IOException, Byte]
- Definition Classes
- ScatteringByteOps
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def transferFrom(src: ScatteringByteOps, position: Long, count: Long)(implicit trace: Trace): IO[IOException, Long]
Transfers bytes into this channel's file from the given readable byte channel.
Transfers bytes into this channel's file from the given readable byte channel.
- src
The source channel
- position
The position within the file at which the transfer is to begin, must be >= 0
- count
The maximum number of bytes to be transferred, must be >= 0
- def transferTo(position: Long, count: Long, target: GatheringByteOps)(implicit trace: Trace): IO[IOException, Long]
Transfers bytes from this channel's file to the given writable byte channel.
Transfers bytes from this channel's file to the given writable byte channel.
- position
The position within the file at which the transfer is to begin, must be >= 0
- count
The maximum number of bytes to be transferred, must be >= 0
- target
The target channel
- def truncate(size: Long)(implicit trace: Trace): IO[IOException, Unit]
Truncates this channel's file to the given size.
Truncates this channel's file to the given size. If the given size is less than the file's current size then the file is truncated, discarding any bytes beyond the new end of the file. If the given size is greater than or equal to the file's current size then the file is not modified. In either case, if this channel's file position is greater than the given size then it is set to that size.
- size
The new size, must be >= 0
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def write(src: ByteBuffer, position: Long)(implicit trace: Trace): IO[IOException, Int]
Writes a sequence of bytes to this channel from the given buffer, starting at the given file position.
Writes a sequence of bytes to this channel from the given buffer, starting at the given file position. This method works in the same manner as the
write(ByteBuffer)
method, except that bytes are written starting at the given file position rather than at the channel's current position. This method does not modify this channel's position. If the given position is greater than the file's current size then the file will be grown to accommodate the new bytes; the values of any bytes between the previous end-of-file and the newly-written bytes are unspecified.- src
The buffer containing the bytes to write
- position
The file position at which the transfer is to begin, must be >= 0
- final def write(src: ByteBuffer)(implicit trace: Trace): IO[IOException, Int]
- Definition Classes
- GatheringByteOps
- final def write(srcs: List[ByteBuffer])(implicit trace: Trace): IO[IOException, Long]
- Definition Classes
- GatheringByteOps
- final def writeChunk(src: Chunk[Byte])(implicit trace: Trace): IO[IOException, Unit]
Writes a chunk of bytes.
Writes a chunk of bytes.
Multiple writes may be performed to write the entire chunk.
- Definition Classes
- GatheringByteOps
- final def writeChunks(srcs: List[Chunk[Byte]])(implicit trace: Trace): IO[IOException, Unit]
Writes a list of chunks, in order.
Writes a list of chunks, in order.
Multiple writes may be performed in order to write all the chunks.
- Definition Classes
- GatheringByteOps