Class InlineBlobCache

    • Constructor Detail

      • InlineBlobCache

        public InlineBlobCache​(FbDatabase database)
        Creates an inline blob cache with the maxBlobCacheSize configured for database.
        Parameters:
        database - database instance
    • Method Detail

      • maxSize

        public int maxSize()
        Returns:
        the maximum cache size, -1 if the cache is disabled
      • size

        public int size()
        Returns:
        the current cache size
      • getAndRemove

        public java.util.Optional<InlineBlob> getAndRemove​(FbTransaction transaction,
                                                           long blobId)
        Gets an inline blob for the transaction and blob id and removes it from the cache.
        Parameters:
        transaction - transaction
        blobId - blob id
        Returns:
        inline blob or empty if not present in the cache
        See Also:
        getAndRemove(int, long)
      • add

        public boolean add​(FbTransaction transaction,
                           InlineBlob blob)
        Adds an inline blob to the cache for the transaction and blob id.

        The inline blob is not stored in the cache if:

        If the blob is stored, this cache is added as a transaction listener of transaction.

        Parameters:
        transaction - transaction
        blob - inline blob
        Returns:
        true if the blob was added to the cache, false otherwise
      • detached

        public void detached​(FbDatabase database)
        Description copied from interface: DatabaseListener
        Called when the database connection has been detached
        Specified by:
        detached in interface DatabaseListener
        Parameters:
        database - The database object that was detached