Module 

Class AbstractStreamSinkConduit<D extends StreamSinkConduit>

    • Constructor Detail

      • AbstractStreamSinkConduit

        protected AbstractStreamSinkConduit​(D next)
        Construct a new instance.
        Parameters:
        next - the delegate conduit to set
    • Method Detail

      • transferFrom

        public long transferFrom​(java.nio.channels.FileChannel src,
                                 long position,
                                 long count)
                          throws java.io.IOException
        Description copied from interface: StreamSinkConduit
        Transfer bytes into this conduit from the given file.
        Specified by:
        transferFrom in interface StreamSinkConduit
        Parameters:
        src - the file to read from
        position - the position within the file from which the transfer is to begin
        count - the number of bytes to be transferred
        Returns:
        the number of bytes (possibly 0) that were actually transferred
        Throws:
        java.io.IOException - if an I/O error occurs
      • transferFrom

        public long transferFrom​(StreamSourceChannel source,
                                 long count,
                                 java.nio.ByteBuffer throughBuffer)
                          throws java.io.IOException
        Description copied from interface: StreamSinkConduit
        Transfers bytes from the given channel source. On entry, throughBuffer will be cleared. On exit, the buffer will be flipped for emptying, and may be empty or may contain data. If this method returns a value less than count, then the remaining data in throughBuffer may contain data read from source which must be written to this channel to complete the operation.
        Specified by:
        transferFrom in interface StreamSinkConduit
        Parameters:
        source - the source to read from
        count - the number of bytes to be transferred
        throughBuffer - the buffer to copy through.
        Returns:
        the number of bytes (possibly 0) that were actually transferred, or -1 if the end of input was reached
        Throws:
        java.io.IOException - if an I/O error occurs
      • write

        public int write​(java.nio.ByteBuffer src)
                  throws java.io.IOException
        Description copied from interface: StreamSinkConduit
        Writes a sequence of bytes to this conduit from the given buffer.
        Specified by:
        write in interface StreamSinkConduit
        Parameters:
        src - the buffer containing data to write
        Returns:
        the number of bytes written, possibly 0
        Throws:
        java.nio.channels.ClosedChannelException - if this conduit's SinkConduit.terminateWrites() method was previously called
        java.io.IOException - if an error occurs
      • write

        public long write​(java.nio.ByteBuffer[] srcs,
                          int offs,
                          int len)
                   throws java.io.IOException
        Description copied from interface: StreamSinkConduit
        Writes a sequence of bytes to this conduit from the given buffers.
        Specified by:
        write in interface StreamSinkConduit
        Parameters:
        srcs - the buffers containing data to write
        offs - the offset into the buffer array
        len - the number of buffers to write
        Returns:
        the number of bytes written, possibly 0
        Throws:
        java.nio.channels.ClosedChannelException - if this conduit's SinkConduit.terminateWrites() method was previously called
        java.io.IOException - if an error occurs
      • writeFinal

        public int writeFinal​(java.nio.ByteBuffer src)
                       throws java.io.IOException
        Description copied from interface: StreamSinkConduit
        Writes some data to the conduit, with the same semantics as StreamSinkConduit.write(java.nio.ByteBuffer). If all the data is written out then the conduit will have its writes terminated. Semantically this method is equivalent to: int rem = src.remaining(); int written = conduit.write(src); if(written == rem) { conduit.terminateWrites() }
        Specified by:
        writeFinal in interface StreamSinkConduit
        Parameters:
        src - The data to write
        Returns:
        The amount of data that was actually written.
        Throws:
        java.io.IOException
      • writeFinal

        public long writeFinal​(java.nio.ByteBuffer[] srcs,
                               int offset,
                               int length)
                        throws java.io.IOException
        Description copied from interface: StreamSinkConduit
        Writes some data to the conduit, with the same semantics as StreamSinkConduit.write(java.nio.ByteBuffer[], int, int). If all the data is written out then the conduit will have its writes terminated.
        Specified by:
        writeFinal in interface StreamSinkConduit
        Parameters:
        srcs - The buffers from which bytes are to be retrieved
        offset - The offset within the buffer array of the first buffer from which bytes are to be retrieved; must be non-negative and no larger than srcs.length
        length - The maximum number of buffers to be accessed; must be non-negative and no larger than srcs.length - offset
        Returns:
        The amount of data that was actually written
        Throws:
        java.io.IOException