Class TombstoneAccessDelegate
java.lang.Object
org.infinispan.hibernate.cache.commons.access.TombstoneAccessDelegate
- All Implemented Interfaces:
AccessDelegate
- Author:
- Radim Vansa <rvansa@redhat.com>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.infinispan.AdvancedCacheprotected static final InfinispanMessageLoggerprotected final InfinispanDataRegion -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanafterInsert(Object session, Object key, Object value, Object version) Called after an item has been inserted (after the transaction completes), instead of calling release().booleanafterUpdate(Object session, Object key, Object value, Object currentVersion, Object previousVersion, org.hibernate.cache.spi.access.SoftLock lock) Called after an item has been updated (after the transaction completes), instead of calling release().voidForcibly evict an item from the cache immediately without regard for transaction isolation.voidevictAll()Forcibly evict all items from the cache immediately without regard for transaction isolation.booleanCalled after an item has been inserted (before the transaction completes), instead of calling evict().voidlockAll()Called just before the delegate will have all entries removed.booleanputFromLoad(Object session, Object key, Object value, long txTimestamp, Object version) Attempt to cache an object, after loading from the database.booleanputFromLoad(Object session, Object key, Object value, long txTimestamp, Object version, boolean minimalPutOverride) Attempt to cache an object, after loading from the database, explicitly specifying the minimalPut behavior.voidCalled after an item has become stale (before the transaction completes).voidCalled to evict data from the entire regionvoidCalled just after the delegate had all entries removed viaAccessDelegate.removeAll().voidunlockItem(Object session, Object key) Called when we have finished the attempted update/delete (which may or may not have been successful), after transaction completion.booleanCalled after an item has been updated (before the transaction completes), instead of calling evict().protected void
-
Field Details
-
log
-
region
-
cache
protected final org.infinispan.AdvancedCache cache -
writeMap
-
asyncWriteMap
-
-
Constructor Details
-
TombstoneAccessDelegate
-
-
Method Details
-
get
public Object get(Object session, Object key, long txTimestamp) throws org.hibernate.cache.CacheException - Specified by:
getin interfaceAccessDelegate- Throws:
org.hibernate.cache.CacheException
-
putFromLoad
public boolean putFromLoad(Object session, Object key, Object value, long txTimestamp, Object version) Description copied from interface:AccessDelegateAttempt to cache an object, after loading from the database.- Specified by:
putFromLoadin interfaceAccessDelegate- Parameters:
session- Current sessionkey- The item keyvalue- The itemtxTimestamp- a timestamp prior to the transaction start timeversion- the item version number- Returns:
- true if the object was successfully cached
-
putFromLoad
public boolean putFromLoad(Object session, Object key, Object value, long txTimestamp, Object version, boolean minimalPutOverride) throws org.hibernate.cache.CacheException Description copied from interface:AccessDelegateAttempt to cache an object, after loading from the database, explicitly specifying the minimalPut behavior.- Specified by:
putFromLoadin interfaceAccessDelegate- Parameters:
session- Current session.key- The item keyvalue- The itemtxTimestamp- a timestamp prior to the transaction start timeversion- the item version numberminimalPutOverride- Explicit minimalPut flag- Returns:
- true if the object was successfully cached
- Throws:
org.hibernate.cache.CacheException- Propogated from underlyingRegion
-
insert
public boolean insert(Object session, Object key, Object value, Object version) throws org.hibernate.cache.CacheException Description copied from interface:AccessDelegateCalled after an item has been inserted (before the transaction completes), instead of calling evict().- Specified by:
insertin interfaceAccessDelegate- Parameters:
session- Current sessionkey- The item keyvalue- The itemversion- The item's version value- Returns:
- Were the contents of the cache actual changed by this operation?
- Throws:
org.hibernate.cache.CacheException- if the insert fails
-
update
public boolean update(Object session, Object key, Object value, Object currentVersion, Object previousVersion) throws org.hibernate.cache.CacheException Description copied from interface:AccessDelegateCalled after an item has been updated (before the transaction completes), instead of calling evict().- Specified by:
updatein interfaceAccessDelegate- Parameters:
session- Current sessionkey- The item keyvalue- The itemcurrentVersion- The item's current version valuepreviousVersion- The item's previous version value- Returns:
- Whether the contents of the cache actual changed by this operation
- Throws:
org.hibernate.cache.CacheException- if the update fails
-
remove
Description copied from interface:AccessDelegateCalled after an item has become stale (before the transaction completes).- Specified by:
removein interfaceAccessDelegate- Parameters:
session- Current sessionkey- The key of the item to remove- Throws:
org.hibernate.cache.CacheException- if removing the cached item fails
-
write
-
lockAll
public void lockAll() throws org.hibernate.cache.CacheExceptionDescription copied from interface:AccessDelegateCalled just before the delegate will have all entries removed. Any work to prevent concurrent modifications while this occurs should happen here- Specified by:
lockAllin interfaceAccessDelegate- Throws:
org.hibernate.cache.CacheException- if locking had an issue
-
unlockAll
public void unlockAll() throws org.hibernate.cache.CacheExceptionDescription copied from interface:AccessDelegateCalled just after the delegate had all entries removed viaAccessDelegate.removeAll(). Any work required to allow for new modifications to happen should be done here- Specified by:
unlockAllin interfaceAccessDelegate- Throws:
org.hibernate.cache.CacheException- if unlocking had an issue
-
removeAll
public void removeAll() throws org.hibernate.cache.CacheExceptionDescription copied from interface:AccessDelegateCalled to evict data from the entire region- Specified by:
removeAllin interfaceAccessDelegate- Throws:
org.hibernate.cache.CacheException- if eviction the region fails
-
evict
Description copied from interface:AccessDelegateForcibly evict an item from the cache immediately without regard for transaction isolation.- Specified by:
evictin interfaceAccessDelegate- Parameters:
key- The key of the item to remove- Throws:
org.hibernate.cache.CacheException- if evicting the item fails
-
evictAll
public void evictAll() throws org.hibernate.cache.CacheExceptionDescription copied from interface:AccessDelegateForcibly evict all items from the cache immediately without regard for transaction isolation.- Specified by:
evictAllin interfaceAccessDelegate- Throws:
org.hibernate.cache.CacheException- if evicting items fails
-
unlockItem
Description copied from interface:AccessDelegateCalled when we have finished the attempted update/delete (which may or may not have been successful), after transaction completion. This method is used by "asynchronous" concurrency strategies.- Specified by:
unlockItemin interfaceAccessDelegatekey- The item key- Throws:
org.hibernate.cache.CacheException- Propogated from underlyingRegion
-
afterInsert
Description copied from interface:AccessDelegateCalled after an item has been inserted (after the transaction completes), instead of calling release(). This method is used by "asynchronous" concurrency strategies.- Specified by:
afterInsertin interfaceAccessDelegatekey- The item keyvalue- The itemversion- The item's version value- Returns:
- Were the contents of the cache actual changed by this operation?
-
afterUpdate
public boolean afterUpdate(Object session, Object key, Object value, Object currentVersion, Object previousVersion, org.hibernate.cache.spi.access.SoftLock lock) Description copied from interface:AccessDelegateCalled after an item has been updated (after the transaction completes), instead of calling release(). This method is used by "asynchronous" concurrency strategies.- Specified by:
afterUpdatein interfaceAccessDelegatekey- The item keyvalue- The itemcurrentVersion- The item's current version valuepreviousVersion- The item's previous version valuelock- The lock previously obtained from#lockItem- Returns:
- Were the contents of the cache actual changed by this operation?
-