All Implemented Interfaces:
AutoCloseable, FbBlob, DatabaseListener, ExceptionListenable, TransactionListener, FbWireBlob

public class V10InputBlob extends AbstractFbWireInputBlob implements FbWireBlob, DatabaseListener
Since:
3.0
Author:
Mark Rotteveel
  • Constructor Details

  • Method Details

    • open

      public void open() throws SQLException
      Description copied from interface: FbBlob
      Opens an existing input blob, or creates an output blob.
      Specified by:
      open in interface FbBlob
      Throws:
      SQLException - If the blob is already open, this is a (closed) output blob and it already has a blobId, the transaction is not active, or a database connection error occurred
    • getSegment

      public byte[] getSegment(int sizeRequested) throws SQLException
      Description copied from interface: FbBlob
      Gets a segment of blob data.

      When sizeRequested exceeds FbBlob.getMaximumSegmentSize() it is silently reduced to the maximum segment size.

      Specified by:
      getSegment in interface FbBlob
      Parameters:
      sizeRequested - Requested segment size (> 0).
      Returns:
      Retrieved segment (size may be less than requested)
      Throws:
      SQLException - If this is an output blob, the blob is closed, the transaction is not active, or a database connection error occurred.
      See Also:
    • sendGetSegment

      protected void sendGetSegment(int len) throws SQLException, IOException
      Sends the op_get_segment request for len, without flushing.
      Parameters:
      len - requested length (should not exceed AbstractFbBlob.getMaximumSegmentSize(), but this is not enforced)
      Throws:
      SQLException - for errors obtaining the XDR output stream
      IOException - for errors writing data to the output stream
    • get

      protected int get(byte[] b, int off, int len, int minLen) throws SQLException
      Description copied from class: AbstractFbBlob
      Specified by:
      get in class AbstractFbBlob
      Parameters:
      b - target byte array
      off - offset to start
      len - number of bytes
      minLen - minimum number of bytes to fill (must be 0 < minLen <= len if len != 0
      Returns:
      actual number of bytes read; is 0 if len == 0, will only be less than minLen if end-of-blob is reached
      Throws:
      SQLException - for database access errors, if off < 0, len < 0, or if off + len > b.length, or len != 0 && (minLen <= 0 || minLen > len)
    • seek

      public void seek(int offset, FbBlob.SeekMode seekMode) throws SQLException
      Description copied from interface: FbBlob
      Performs a seek on a blob with the specified seekMode and offset.

      Firebird only supports seek on stream blobs.

      Specified by:
      seek in interface FbBlob
      Parameters:
      offset - Offset of the seek, effect depends on value of seekMode
      seekMode - Value of FbBlob.SeekMode
      Throws:
      SQLException - If the blob is closed, the transaction is not active, or a database error occurred.