public class org.ehcache.impl.internal.store.offheap.OffHeapStore<K, V> extends org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore<K, V>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.ehcache.impl.internal.store.offheap.OffHeapStore
super_class: org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore
{
private final org.ehcache.impl.internal.store.offheap.SwitchableEvictionAdvisor<K, org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V>> evictionAdvisor;
descriptor: Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor<TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;
private final org.ehcache.spi.serialization.Serializer<K> keySerializer;
descriptor: Lorg/ehcache/spi/serialization/Serializer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/ehcache/spi/serialization/Serializer<TK;>;
private final org.ehcache.spi.serialization.Serializer<V> valueSerializer;
descriptor: Lorg/ehcache/spi/serialization/Serializer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/ehcache/spi/serialization/Serializer<TV;>;
private final long sizeInBytes;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile org.ehcache.impl.internal.store.offheap.EhcacheConcurrentOffHeapClockCache<K, org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V>> map;
descriptor: Lorg/ehcache/impl/internal/store/offheap/EhcacheConcurrentOffHeapClockCache;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Lorg/ehcache/impl/internal/store/offheap/EhcacheConcurrentOffHeapClockCache<TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;
public void <init>(org.ehcache.core.spi.store.Store$Configuration<K, V>, org.ehcache.core.spi.time.TimeSource, org.ehcache.core.events.StoreEventDispatcher<K, V>, long, org.ehcache.core.spi.service.StatisticsService);
descriptor: (Lorg/ehcache/core/spi/store/Store$Configuration;Lorg/ehcache/core/spi/time/TimeSource;Lorg/ehcache/core/events/StoreEventDispatcher;JLorg/ehcache/core/spi/service/StatisticsService;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 6 0: aload 0
aload 1
aload 2
aload 3
aload 6
invokespecial org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore.<init>:(Lorg/ehcache/core/spi/store/Store$Configuration;Lorg/ehcache/core/spi/time/TimeSource;Lorg/ehcache/core/events/StoreEventDispatcher;Lorg/ehcache/core/spi/service/StatisticsService;)V
1: aload 1
invokeinterface org.ehcache.core.spi.store.Store$Configuration.getEvictionAdvisor:()Lorg/ehcache/config/EvictionAdvisor;
astore 7
start local 7 2: aload 7
ifnull 5
3: aload 0
aload 7
invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStore.wrap:(Lorg/ehcache/config/EvictionAdvisor;)Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
putfield org.ehcache.impl.internal.store.offheap.OffHeapStore.evictionAdvisor:Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
4: goto 6
5: StackMap locals: org.ehcache.impl.internal.store.offheap.OffHeapStore org.ehcache.core.spi.store.Store$Configuration org.ehcache.core.spi.time.TimeSource org.ehcache.core.events.StoreEventDispatcher long org.ehcache.core.spi.service.StatisticsService org.ehcache.config.EvictionAdvisor
StackMap stack:
aload 0
invokestatic org.ehcache.config.Eviction.noAdvice:()Lorg/ehcache/config/EvictionAdvisor;
invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStore.wrap:(Lorg/ehcache/config/EvictionAdvisor;)Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
putfield org.ehcache.impl.internal.store.offheap.OffHeapStore.evictionAdvisor:Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface org.ehcache.core.spi.store.Store$Configuration.getKeySerializer:()Lorg/ehcache/spi/serialization/Serializer;
putfield org.ehcache.impl.internal.store.offheap.OffHeapStore.keySerializer:Lorg/ehcache/spi/serialization/Serializer;
7: aload 0
aload 1
invokeinterface org.ehcache.core.spi.store.Store$Configuration.getValueSerializer:()Lorg/ehcache/spi/serialization/Serializer;
putfield org.ehcache.impl.internal.store.offheap.OffHeapStore.valueSerializer:Lorg/ehcache/spi/serialization/Serializer;
8: aload 0
lload 4
putfield org.ehcache.impl.internal.store.offheap.OffHeapStore.sizeInBytes:J
9: return
end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
0 10 1 config Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;
0 10 2 timeSource Lorg/ehcache/core/spi/time/TimeSource;
0 10 3 eventDispatcher Lorg/ehcache/core/events/StoreEventDispatcher<TK;TV;>;
0 10 4 sizeInBytes J
0 10 6 statisticsService Lorg/ehcache/core/spi/service/StatisticsService;
2 10 7 evictionAdvisor Lorg/ehcache/config/EvictionAdvisor<-TK;-TV;>;
Signature: (Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;Lorg/ehcache/core/spi/time/TimeSource;Lorg/ehcache/core/events/StoreEventDispatcher<TK;TV;>;JLorg/ehcache/core/spi/service/StatisticsService;)V
MethodParameters:
Name Flags
config final
timeSource
eventDispatcher
sizeInBytes
statisticsService
protected java.lang.String getStatisticsTag();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "OffHeap"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
public java.util.List<org.ehcache.core.CacheConfigurationChangeListener> getConfigurationChangeListeners();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
Signature: ()Ljava/util/List<Lorg/ehcache/core/CacheConfigurationChangeListener;>;
private org.ehcache.impl.internal.store.offheap.EhcacheConcurrentOffHeapClockCache<K, org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V>> createBackingMap(long, org.ehcache.spi.serialization.Serializer<K>, org.ehcache.spi.serialization.Serializer<V>, org.ehcache.impl.internal.store.offheap.SwitchableEvictionAdvisor<K, org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V>>);
descriptor: (JLorg/ehcache/spi/serialization/Serializer;Lorg/ehcache/spi/serialization/Serializer;Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;)Lorg/ehcache/impl/internal/store/offheap/EhcacheConcurrentOffHeapClockCache;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=12, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: new org.ehcache.impl.internal.store.offheap.HeuristicConfiguration
dup
lload 1
invokespecial org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.<init>:(J)V
astore 6
start local 6 1: new org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource
dup
invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getBufferSource:()Lorg/terracotta/offheapstore/buffersource/BufferSource;
aload 6
invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMaximumSize:()J
aload 6
invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMaximumChunkSize:()I
aload 6
invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMinimumChunkSize:()I
invokespecial org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.<init>:(Lorg/terracotta/offheapstore/buffersource/BufferSource;JII)V
astore 7
start local 7 2: new org.ehcache.impl.internal.store.offheap.portability.SerializerPortability
dup
aload 3
invokespecial org.ehcache.impl.internal.store.offheap.portability.SerializerPortability.<init>:(Lorg/ehcache/spi/serialization/Serializer;)V
astore 8
start local 8 3: aload 0
aload 4
invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore.createValuePortability:(Lorg/ehcache/spi/serialization/Serializer;)Lorg/ehcache/impl/internal/store/offheap/portability/OffHeapValueHolderPortability;
astore 9
start local 9 4: getstatic org.terracotta.offheapstore.storage.PointerSize.INT:Lorg/terracotta/offheapstore/storage/PointerSize;
aload 7
aload 6
5: invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getSegmentDataPageSize:()I
aload 8
aload 9
iconst_0
iconst_1
6: invokestatic org.terracotta.offheapstore.storage.OffHeapBufferStorageEngine.createFactory:(Lorg/terracotta/offheapstore/storage/PointerSize;Lorg/terracotta/offheapstore/paging/PageSource;ILorg/terracotta/offheapstore/storage/portability/Portability;Lorg/terracotta/offheapstore/storage/portability/Portability;ZZ)Lorg/terracotta/offheapstore/util/Factory;
astore 10
start local 10 7: new org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory
dup
8: aload 7
9: aload 10
10: aload 6
invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getInitialSegmentTableSize:()I
11: aload 5
12: aload 0
getfield org.ehcache.impl.internal.store.offheap.OffHeapStore.mapEvictionListener:Lorg/ehcache/impl/internal/store/offheap/AbstractOffHeapStore$BackingMapEvictionListener;
13: invokespecial org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory.<init>:(Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/util/Factory;ILorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;Lorg/ehcache/impl/internal/store/offheap/factories/EhcacheSegmentFactory$EhcacheSegment$EvictionListener;)V
astore 11
start local 11 14: new org.ehcache.impl.internal.store.offheap.EhcacheConcurrentOffHeapClockCache
dup
aload 5
aload 11
aload 6
invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getConcurrency:()I
invokespecial org.ehcache.impl.internal.store.offheap.EhcacheConcurrentOffHeapClockCache.<init>:(Lorg/ehcache/config/EvictionAdvisor;Lorg/terracotta/offheapstore/util/Factory;I)V
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
0 15 1 size J
0 15 3 keySerializer Lorg/ehcache/spi/serialization/Serializer<TK;>;
0 15 4 valueSerializer Lorg/ehcache/spi/serialization/Serializer<TV;>;
0 15 5 evictionAdvisor Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor<TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;
1 15 6 config Lorg/ehcache/impl/internal/store/offheap/HeuristicConfiguration;
2 15 7 source Lorg/terracotta/offheapstore/paging/PageSource;
3 15 8 keyPortability Lorg/terracotta/offheapstore/storage/portability/Portability<TK;>;
4 15 9 valuePortability Lorg/terracotta/offheapstore/storage/portability/Portability<Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;
7 15 10 storageEngineFactory Lorg/terracotta/offheapstore/util/Factory<Lorg/terracotta/offheapstore/storage/OffHeapBufferStorageEngine<TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;>;
14 15 11 segmentFactory Lorg/terracotta/offheapstore/util/Factory<+Lorg/terracotta/offheapstore/pinning/PinnableSegment<TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;>;
Signature: (JLorg/ehcache/spi/serialization/Serializer<TK;>;Lorg/ehcache/spi/serialization/Serializer<TV;>;Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor<TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;)Lorg/ehcache/impl/internal/store/offheap/EhcacheConcurrentOffHeapClockCache<TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;
MethodParameters:
Name Flags
size
keySerializer
valueSerializer
evictionAdvisor
protected org.ehcache.impl.internal.store.offheap.EhcacheOffHeapBackingMap<K, org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V>> backingMap();
descriptor: ()Lorg/ehcache/impl/internal/store/offheap/EhcacheOffHeapBackingMap;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.ehcache.impl.internal.store.offheap.OffHeapStore.map:Lorg/ehcache/impl/internal/store/offheap/EhcacheConcurrentOffHeapClockCache;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
Signature: ()Lorg/ehcache/impl/internal/store/offheap/EhcacheOffHeapBackingMap<TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;
protected org.ehcache.impl.internal.store.offheap.SwitchableEvictionAdvisor<K, org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V>> evictionAdvisor();
descriptor: ()Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.ehcache.impl.internal.store.offheap.OffHeapStore.evictionAdvisor:Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
Signature: ()Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor<TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Lorg/ehcache/impl/internal/store/offheap/AbstractOffHeapStore<TK;TV;>;
SourceFile: "OffHeapStore.java"
NestMembers:
org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider
InnerClasses:
public abstract Configuration = org.ehcache.core.spi.store.Store$Configuration of org.ehcache.core.spi.store.Store
public Provider = org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider of org.ehcache.impl.internal.store.offheap.OffHeapStore
public EhcacheSegment = org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment of org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory
public abstract EvictionListener = org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment$EvictionListener of org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment