com.google.common.cache.LocalCache$Segment.class Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of plantuml-epl Show documentation
Show all versions of plantuml-epl Show documentation
PlantUML is a component that allows to quickly write diagrams from text.
???? 4h "com/google/common/cache/LocalCache
(java/util/concurrent/locks/ReentrantLock ()V
)java/util/concurrent/atomic/AtomicInteger
*com/google/common/cache/LocalCache$Segment readCount +Ljava/util/concurrent/atomic/AtomicInteger;
map $Lcom/google/common/cache/LocalCache;
maxSegmentWeight J
$com/google/common/base/Preconditions checkNotNull &(Ljava/lang/Object;)Ljava/lang/Object; ! 2com/google/common/cache/AbstractCache$StatsCounter
# $ % statsCounter 4Lcom/google/common/cache/AbstractCache$StatsCounter;
' ( )
newEntryArray 5(I)Ljava/util/concurrent/atomic/AtomicReferenceArray;
+ , - initTable 5(Ljava/util/concurrent/atomic/AtomicReferenceArray;)V
/ 0 1 usesKeyReferences ()Z 3 java/lang/ref/ReferenceQueue
2
6 7 8 keyReferenceQueue Ljava/lang/ref/ReferenceQueue;
: ; 1 usesValueReferences
= > 8 valueReferenceQueue
@ A 1 usesAccessQueue C *java/util/concurrent/ConcurrentLinkedQueue
B
F G H discardingQueue ()Ljava/util/Queue;
J K L recencyQueue Ljava/util/Queue;
N O 1 usesWriteQueue Q -com/google/common/cache/LocalCache$WriteQueue
P
T U L
writeQueue W .com/google/common/cache/LocalCache$AccessQueue
V
Z [ L accessQueue ] 0java/util/concurrent/atomic/AtomicReferenceArray
\ _ ` (I)V
\ b c d length ()I
f g h threshold I
j k 1
customWeigher
m n o table 2Ljava/util/concurrent/atomic/AtomicReferenceArray; q r s entryFactory 1Lcom/google/common/cache/LocalCache$EntryFactory;
u v w x y /com/google/common/cache/LocalCache$EntryFactory newEntry ?(Lcom/google/common/cache/LocalCache$Segment;Ljava/lang/Object;ILcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry; { | } ~ &com/google/common/cache/ReferenceEntry getKey ()Ljava/lang/Object; { ? ? ? getValueReference 5()Lcom/google/common/cache/LocalCache$ValueReference; ? ? ? ? 1com/google/common/cache/LocalCache$ValueReference get ? ? ? 1 isActive
u ? ? ? copyEntry ?(Lcom/google/common/cache/LocalCache$Segment;Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;)Lcom/google/common/cache/ReferenceEntry; ? ? ? ? copyFor ?(Ljava/lang/ref/ReferenceQueue;Ljava/lang/Object;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/LocalCache$ValueReference; { ? ? ? setValueReference 6(Lcom/google/common/cache/LocalCache$ValueReference;)V ? ? ? weigher !Lcom/google/common/cache/Weigher; ? ? ? ? ? com/google/common/cache/Weigher weigh '(Ljava/lang/Object;Ljava/lang/Object;)I ? Weights must be non-negative
? ? ?
checkState (ZLjava/lang/Object;)V ? ? ?
valueStrength -Lcom/google/common/cache/LocalCache$Strength;
? ? ? ? ? +com/google/common/cache/LocalCache$Strength referenceValue ?(Lcom/google/common/cache/LocalCache$Segment;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;I)Lcom/google/common/cache/LocalCache$ValueReference;
? ? ? recordWrite -(Lcom/google/common/cache/ReferenceEntry;IJ)V ? ? ? ? notifyNewValue (Ljava/lang/Object;)V
? ? h count
? ? ? getEntry =(Ljava/lang/Object;I)Lcom/google/common/cache/ReferenceEntry; ? ? ? ticker Lcom/google/common/base/Ticker;
? ? ? ? ? com/google/common/base/Ticker read ()J
? ? ? getLiveValue =(Lcom/google/common/cache/ReferenceEntry;J)Ljava/lang/Object;
? ? ?
recordRead ,(Lcom/google/common/cache/ReferenceEntry;J)V ? ? `
recordHits
? ? ? scheduleRefresh ?(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;JLcom/google/common/cache/CacheLoader;)Ljava/lang/Object;
? ? postReadCleanup ? ? ? 1 isLoading
? ? ? waitForLoadingValue ?(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;)Ljava/lang/Object;
? ? ? lockedGetOrLoad L(Ljava/lang/Object;ILcom/google/common/cache/CacheLoader;)Ljava/lang/Object; ? 'java/util/concurrent/ExecutionException
? ? ? ? getCause ()Ljava/lang/Throwable; ? java/lang/Error ? 0com/google/common/util/concurrent/ExecutionError
? ? ? (Ljava/lang/Error;)V ? java/lang/RuntimeException ? =com/google/common/util/concurrent/UncheckedExecutionException
? ? ? (Ljava/lang/Throwable;)V
? ? ? getLiveEntry >(Ljava/lang/Object;IJ)Lcom/google/common/cache/ReferenceEntry;
defaultLoader %Lcom/google/common/cache/CacheLoader;
tryDrainReferenceQueues
lock
preWriteCleanup (J)V
\ ? (I)Ljava/lang/Object; { d getHash keyEquivalence $Lcom/google/common/base/Equivalence;
"com/google/common/base/Equivalence
equivalent '(Ljava/lang/Object;Ljava/lang/Object;)Z ? d getWeight "#$%& $com/google/common/cache/RemovalCause COLLECTED &Lcom/google/common/cache/RemovalCause;
()* enqueueNotification O(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
,-. isExpired ,(Lcom/google/common/cache/ReferenceEntry;J)Z "01& EXPIRED
34 ? recordLockedRead
67 unlock
9: postWriteCleanup<=>?@ java/util/Queue remove (Ljava/lang/Object;)Z {BCD getNext *()Lcom/google/common/cache/ReferenceEntry;F 8com/google/common/cache/LocalCache$LoadingValueReference
E
I xJ e(Ljava/lang/Object;ILcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
\LMN set (ILjava/lang/Object;)V
PQR loadSync ?(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/cache/CacheLoader;)Ljava/lang/Object; TU ` recordMissesW java/lang/AssertionError
V
Z[\]@ java/lang/Thread holdsLock_ Recursive load of: %s
a ?b ((ZLjava/lang/String;Ljava/lang/Object;)V ?de waitForValueg =com/google/common/cache/CacheLoader$InvalidCacheLoadExceptioni java/lang/StringBuilder
h l "CacheLoader returned null for key
hnop append -(Ljava/lang/String;)Ljava/lang/StringBuilder;
hros -(Ljava/lang/Object;)Ljava/lang/StringBuilder;u .
hwxy toString ()Ljava/lang/String;
f{ | (Ljava/lang/String;)V~ :com/google/common/cache/LocalCache$ComputingValueReference
}? ?
}??? compute E(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
}?M@
????? )com/google/common/util/concurrent/Futures immediateFuture H(Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture;
??? getAndRecordStats ?(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Object;? /impossible; Futures.immediateFuture can't throw
V? ?
??? removeLoadingValue P(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;)Z "??& EXPLICIT
??? removeEntry R(Lcom/google/common/cache/ReferenceEntry;ILcom/google/common/cache/RemovalCause;)Z
E???
loadFuture m(Ljava/lang/Object;Lcom/google/common/cache/CacheLoader;)Lcom/google/common/util/concurrent/ListenableFuture; ??? run ?(Lcom/google/common/cache/LocalCache$Segment;Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Runnable;
????? /com/google/common/util/concurrent/MoreExecutors directExecutor !()Ljava/util/concurrent/Executor;????? 2com/google/common/util/concurrent/ListenableFuture addListener 6(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
????? 2com/google/common/util/concurrent/Uninterruptibles getUninterruptibly 1(Ljava/util/concurrent/Future;)Ljava/lang/Object;
E?? ? elapsedNanos ??
recordLoadSuccess
??? storeLoadedValue b(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Ljava/lang/Object;)Z ??
recordLoadException
?? 1 refreshes {?? ? getWriteTime ?? refreshNanos
??? refresh M(Ljava/lang/Object;ILcom/google/common/cache/CacheLoader;Z)Ljava/lang/Object;
??? insertLoadingValueReference P(Ljava/lang/Object;IZ)Lcom/google/common/cache/LocalCache$LoadingValueReference;
??? loadAsync ?(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/cache/CacheLoader;)Lcom/google/common/util/concurrent/ListenableFuture;??? 1 isDone? java/lang/Throwable
?? h modCount
E?
?? 1 tryLock
?? drainReferenceQueues
?? drainKeyReferenceQueue
?? drainValueReferenceQueue
2??? poll ()Ljava/lang/ref/Reference;
???
reclaimKey +(Lcom/google/common/cache/ReferenceEntry;)V
?? ? reclaimValue
?? clearKeyReferenceQueue
clearValueReferenceQueue
1
recordsAccess {
setAccessTime<
@ add
drainRecencyQueue
totalWeight
1 recordsWrite {
setWriteTime<? <@ contains
expireEntries< ! peek
"#$ 1
wasEvicted &' recordEviction )* L removalNotificationQueue ,- L DISCARDING_QUEUE
/0123 +com/google/common/cache/RemovalNotification create y(Ljava/lang/Object;Ljava/lang/Object;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/RemovalNotification;<56@ offer
89 1 evictsBySize ";<& SIZE
>?D getNextEvictable<ABC iterator ()Ljava/util/Iterator;EFGH 1 java/util/Iterator hasNextEJK next
MNO getFirst +(I)Lcom/google/common/cache/ReferenceEntry;
QR
tryExpireEntries TU valueEquivalence
WX expand
Z[\ setValue P(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
^_? evictEntries "ab& REPLACED@
e ?f z(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
hi? removeCollectedEntry
klm removeValueFromChain ?(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/ReferenceEntry; opq UNSET 3Lcom/google/common/cache/LocalCache$ValueReference;
E ?
E
uv clearReferenceQueues<xy clear
{M `
}~f removeEntryFromChain
?? 1 isHeldByCurrentThread
E?? ? getOldValue
?? d incrementAndGet
?? cleanUp
??
runLockedCleanup
?? runUnlockedCleanup
?? processPendingNotifications ??? logger Ljava/util/logging/Logger; ????? java/util/logging/Level WARNING Ljava/util/logging/Level;? Exception thrown during refresh
????? java/util/logging/Logger log C(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
E??? setException (Ljava/lang/Throwable;)Z Signature ,Lcom/google/common/cache/LocalCache; RuntimeInvisibleAnnotations $Lcom/google/j2objc/annotations/Weak; 8Lcom/google/errorprone/annotations/concurrent/GuardedBy; value this dLjava/util/concurrent/atomic/AtomicReferenceArray;>; RuntimeVisibleAnnotations Ljavax/annotation/CheckForNull; #Ljava/lang/ref/ReferenceQueue; #Ljava/lang/ref/ReferenceQueue; CLjava/util/Queue;>; ](Lcom/google/common/cache/LocalCache;IJLcom/google/common/cache/AbstractCache$StatsCounter;)V Code LineNumberTable LocalVariableTable ,Lcom/google/common/cache/LocalCache$Segment; initialCapacity LocalVariableTypeTable 4Lcom/google/common/cache/LocalCache$Segment;
StackMapTable MethodParameters e(Lcom/google/common/cache/LocalCache;IJLcom/google/common/cache/AbstractCache$StatsCounter;)V size g(I)Ljava/util/concurrent/atomic/AtomicReferenceArray;>; newTable g(Ljava/util/concurrent/atomic/AtomicReferenceArray;>;)V key Ljava/lang/Object; hash (Lcom/google/common/cache/ReferenceEntry; TK; 0Lcom/google/common/cache/ReferenceEntry; f(TK;ILcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry; "RuntimeVisibleParameterAnnotations original newNext valueReference ;Lcom/google/common/cache/LocalCache$ValueReference; TV;? java/lang/Object ?(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry; entry now previous weight :(Lcom/google/common/cache/ReferenceEntry;TK;TV;J)V e cause Ljava/lang/Throwable; ee )Ljava/util/concurrent/ExecutionException; loader .Lcom/google/common/cache/CacheLoader<-TK;TV;>;? #com/google/common/cache/CacheLoader
Exceptions 7(TK;ILcom/google/common/cache/CacheLoader<-TK;TV;>;)TV; 8Lcom/google/errorprone/annotations/CanIgnoreReturnValue; '(Ljava/lang/Object;I)Ljava/lang/Object; (Ljava/lang/Object;I)TV; entryKey newCount index first loadingValueReference :Lcom/google/common/cache/LocalCache$LoadingValueReference; createNewEntry Z BLcom/google/common/cache/LocalCache$LoadingValueReference; s(Lcom/google/common/cache/ReferenceEntry;TK;Lcom/google/common/cache/LocalCache$ValueReference;)TV; F(Ljava/lang/Object;ILjava/util/function/BiFunction;)Ljava/lang/Object; exception newValue function Ljava/util/function/BiFunction; computingValueReference