All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.benmanes.caffeine.cache.SIA Maven / Gradle / Ivy

There is a newer version: 3.1.8
Show newest version
// Copyright 2019 Ben Manes. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.github.benmanes.caffeine.cache;

import java.lang.Runnable;
import java.lang.SuppressWarnings;

/**
 * WARNING: GENERATED CODE
 *
 * A cache that provides the following features:
 * 
    *
  • ExpireAccess *
  • StrongKeys (inherited) *
  • InfirmValues (inherited) *
* * @author [email protected] (Ben Manes) */ @SuppressWarnings({"unchecked", "MissingOverride", "NullAway"}) class SIA extends SI { final Ticker ticker; final AccessOrderDeque> accessOrderWindowDeque; final Expiry expiry; final TimerWheel timerWheel; volatile long expiresAfterAccessNanos; final MpscGrowableArrayQueue writeBuffer; SIA(Caffeine builder, CacheLoader cacheLoader, boolean async) { super(builder, cacheLoader, async); this.ticker = builder.getTicker(); this.accessOrderWindowDeque = builder.evicts() || builder.expiresAfterAccess() ? new AccessOrderDeque>() : null; this.expiry = builder.getExpiry(isAsync); this.timerWheel = builder.expiresVariable() ? new TimerWheel(this) : null; this.expiresAfterAccessNanos = builder.getExpiresAfterAccessNanos(); this.writeBuffer = new MpscGrowableArrayQueue<>(WRITE_BUFFER_MIN, WRITE_BUFFER_MAX); } public final Ticker expirationTicker() { return ticker; } protected final AccessOrderDeque> accessOrderWindowDeque() { return accessOrderWindowDeque; } protected final boolean expiresVariable() { return (timerWheel != null); } protected final Expiry expiry() { return expiry; } protected final TimerWheel timerWheel() { return timerWheel; } protected final boolean expiresAfterAccess() { return (timerWheel == null); } protected final long expiresAfterAccessNanos() { return expiresAfterAccessNanos; } protected final void setExpiresAfterAccessNanos(long expiresAfterAccessNanos) { this.expiresAfterAccessNanos = expiresAfterAccessNanos; } protected final MpscGrowableArrayQueue writeBuffer() { return writeBuffer; } protected final boolean buffersWrites() { return true; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy