Package org.firebirdsql.gds.ng.wire
Class InlineBlobCache
- java.lang.Object
- 
- org.firebirdsql.gds.ng.wire.InlineBlobCache
 
- 
- All Implemented Interfaces:
- DatabaseListener,- TransactionListener
 
 public final class InlineBlobCache extends java.lang.Object implements DatabaseListener, TransactionListener Cache for inline blobs of a single attachment.- Since:
- 5.0.8
- Author:
- Mark Rotteveel
 
- 
- 
Constructor SummaryConstructors Constructor Description InlineBlobCache(FbDatabase database)Creates an inline blob cache with themaxBlobCacheSizeconfigured fordatabase.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(FbTransaction transaction, InlineBlob blob)Adds an inline blob to the cache for the transaction and blob id.voiddetached(FbDatabase database)Called when thedatabaseconnection has been detachedjava.util.Optional<InlineBlob>getAndRemove(FbTransaction transaction, long blobId)Gets an inline blob for the transaction and blob id and removes it from the cache.intmaxSize()intsize()voidtransactionStateChanged(FbTransaction transaction, TransactionState newState, TransactionState previousState)Signals that the transaction state changed.- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.firebirdsql.gds.ng.listeners.DatabaseListenerdetaching, warningReceived
 
- 
 
- 
- 
- 
Constructor Detail- 
InlineBlobCachepublic InlineBlobCache(FbDatabase database) Creates an inline blob cache with themaxBlobCacheSizeconfigured fordatabase.- Parameters:
- database- database instance
 
 
- 
 - 
Method Detail- 
maxSizepublic int maxSize() - Returns:
- the maximum cache size, -1if the cache is disabled
 
 - 
sizepublic int size() - Returns:
- the current cache size
 
 - 
getAndRemovepublic 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)
 
 - 
addpublic 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: - transactionis not active
- FbTransaction.getHandle()is not equal to- InlineBlob.getTransactionHandle()
- Adding the blob would exceed the maximum cache size
 If the blob is stored, this cache is added as a transaction listener of transaction.- Parameters:
- transaction- transaction
- blob- inline blob
- Returns:
- trueif the blob was added to the cache,- falseotherwise
 
 - 
transactionStateChangedpublic void transactionStateChanged(FbTransaction transaction, TransactionState newState, TransactionState previousState) Description copied from interface:TransactionListenerSignals that the transaction state changed.- Specified by:
- transactionStateChangedin interface- TransactionListener
- Parameters:
- transaction-- FbTransactionthat changed state
 
 - 
detachedpublic void detached(FbDatabase database) Description copied from interface:DatabaseListenerCalled when thedatabaseconnection has been detached- Specified by:
- detachedin interface- DatabaseListener
- Parameters:
- database- The database object that was detached
 
 
- 
 
-