Class AbstractFbWireInputBlob

All Implemented Interfaces:
AutoCloseable, FbBlob, DatabaseListener, ExceptionListenable, TransactionListener, FbWireBlob
Direct Known Subclasses:
V10InputBlob

public abstract class AbstractFbWireInputBlob extends AbstractFbWireBlob
Since:
3.0
Author:
Mark Rotteveel
  • Constructor Details

  • Method Details

    • getBlobId

      public final long getBlobId()
      Returns:
      The Firebird blob id
    • isOutput

      public final boolean isOutput()
      Returns:
      true if this is an output blob (write only), false if this is an input blob (read only)
    • putSegment

      public final void putSegment(byte[] segment) throws SQLException
      Description copied from interface: FbBlob
      Writes a segment of blob data.

      Implementations must handle segment lengths exceeding FbBlob.getMaximumSegmentSize() by batching. This method should either call put(segment, 0, segment.length), or produce the same effects as that call.

      Passing a section that is length 0 will throw an SQLException.

      Specified by:
      putSegment in interface FbBlob
      Overrides:
      putSegment in class AbstractFbBlob
      Parameters:
      segment - segment to write
      Throws:
      SQLException - if this is an input blob, the blob is closed, the transaction is not active, the segment is length 0, or a database connection error occurred
      See Also:
    • put

      public final void put(byte[] b, int off, int len) throws SQLException
      Description copied from interface: FbBlob
      Writes content of b starting at off for length bytes to the blob.

      Implementations must write all bytes to the blob, using multiple round-trips if necessary.

      If the implementation cannot perform writes without additional allocation, it should use at most DatabaseConnectionProperties.getBlobBufferSize() as an internal buffer. If the implementation can perform writes without additional allocation, it is recommended it performs reads using (at most) FbBlob.getMaximumSegmentSize().

      Parameters:
      b - source byte array
      off - offset to start
      len - number of bytes
      Throws:
      SQLException - for database access errors, if off < 0, len < 0, or if off + len > b.length