org.firebirdsql.gds.ng.wire.version10

## Class V10OutputBlob

- java.lang.Object
- - org.firebirdsql.gds.ng.AbstractFbBlob
  - - org.firebirdsql.gds.ng.wire.AbstractFbWireBlob
    - - org.firebirdsql.gds.ng.wire.AbstractFbWireOutputBlob
      - - org.firebirdsql.gds.ng.wire.version10.V10OutputBlob

- All Implemented Interfaces:
    java.lang.AutoCloseable, FbBlob, DatabaseListener, ExceptionListenable, TransactionListener, FbWireBlob
  Direct Known Subclasses:
    V11OutputBlob

      public class V10OutputBlob
      extends AbstractFbWireOutputBlob
      implements FbWireBlob, DatabaseListener

  Output `FbWireBlob` implementation for the version 10 wire protocol.
  Since:
    3
  Author:
    Mark Rotteveel

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.firebirdsql.gds.ng.wire.AbstractFbWireBlob

      `AbstractFbWireBlob.BlobOpenOperation`

    - ### Nested classes/interfaces inherited from class org.firebirdsql.gds.ng.AbstractFbBlob

      `AbstractFbBlob.BlobState`

    - ### Nested classes/interfaces inherited from interface org.firebirdsql.gds.ng.FbBlob

      `FbBlob.SeekMode`

  - ### Field Summary

    - ### Fields inherited from class org.firebirdsql.gds.ng.AbstractFbBlob

      `exceptionListenerDispatcher`

    - ### Fields inherited from interface org.firebirdsql.gds.ng.FbBlob

      `NO_BLOB_ID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `V10OutputBlob(FbWireDatabase database, FbWireTransaction transaction, BlobParameterBuffer blobParameterBuffer)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `consumePutSegmentResponses(int requestCount)`
    `void` | `open()` Opens an existing input blob, or creates an output blob.
    `void` | `put(byte[] b, int off, int len)` Writes content of `b` starting at `off` for `length` bytes to the blob.

    - ### Methods inherited from class org.firebirdsql.gds.ng.wire.AbstractFbWireOutputBlob

      `get, getBlobId, getSegment, isOutput, processOpenResponse, seek, setBlobId`

    - ### Methods inherited from class org.firebirdsql.gds.ng.wire.AbstractFbWireBlob

      `cancelImpl, closeImpl, getBlobInfo, getDatabase, getHandle, getXdrIn, getXdrOut, receiveOpenResponse, releaseBlob, releaseResources, sendOpen, setHandle, wrapDeferredResponse`

    - ### Methods inherited from class org.firebirdsql.gds.ng.AbstractFbBlob

      `addExceptionListener, cancel, checkBlobClosed, checkBlobOpen, checkDatabaseAttached, checkTransactionActive, clearDatabase, clearDeferredException, clearTransaction, close, createBlobLengthProcessor, detached, detaching, errorOccurred, get, get, getBlobInfo, getBlobParameterBuffer, getKnownBlobInfoItems, getMaximumSegmentSize, getState, getTransaction, isEndingTransaction, isEof, isOpen, length, putSegment, registerDeferredException, removeExceptionListener, resetEof, setEof, setState, throwAndClearDeferredException, transactionStateChanged, transferDeferredExceptionTo, validateBufferLength, warningReceived, withLock`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.firebirdsql.gds.ng.FbBlob

      `cancel, close, get, get, getBlobId, getBlobInfo, getBlobInfo, getDatabase, getHandle, getMaximumSegmentSize, getSegment, isEof, isOpen, isOutput, length, putSegment, seek`

    - ### Methods inherited from interface org.firebirdsql.gds.ng.listeners.ExceptionListenable

      `addExceptionListener, removeExceptionListener`

    - ### Methods inherited from interface org.firebirdsql.gds.ng.listeners.DatabaseListener

      `detached, detaching, warningReceived`

- - ### Constructor Detail

    - #### V10OutputBlob

          public V10OutputBlob(FbWireDatabase database,
                               FbWireTransaction transaction,
                               BlobParameterBuffer blobParameterBuffer)
                        throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

  - ### Method Detail

    - #### open

          public void open()
                    throws java.sql.SQLException

      Description copied from interface: `FbBlob`
      Opens an existing input blob, or creates an output blob.
      Specified by:
        `open` in interface `FbBlob`
      Throws:
        `java.sql.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

    - #### put

          public void put(byte[] b,
                          int off,
                          int len)
                   throws java.sql.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()`.

      Specified by:
        `put` in interface `FbBlob`
      Parameters:
        `b` - source byte array
        `off` - offset to start
        `len` - number of bytes
      Throws:
        `java.sql.SQLException` - for database access errors, if `off < 0`, `len < 0`, or if `off + len > b.length`

    - #### consumePutSegmentResponses

          protected void consumePutSegmentResponses(int requestCount)
                                             throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

Copyright © 2001-2025 Jaybird (Firebird JDBC) team. All rights reserved.