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

com.github.xiaolyuh.stats.CacheStats Maven / Gradle / Ivy

package com.github.xiaolyuh.stats;

import java.io.Serializable;
import java.util.concurrent.atomic.LongAdder;

/**
 * 缓存统计信息实体类
 *
 * @author yuhao.wang3
 */
public final class CacheStats implements Serializable {
    /**
     * 请求缓存总数
     */
    private LongAdder cacheRequestCount;

    /**
     * 请求被缓存方法总数
     */
    private LongAdder cachedMethodRequestCount;

    /**
     * 请求被缓存方法总耗时(毫秒)
     */
    private LongAdder cachedMethodRequestTime;

    public CacheStats() {
        this.cacheRequestCount = new LongAdder();
        this.cachedMethodRequestCount = new LongAdder();
        this.cachedMethodRequestTime = new LongAdder();
    }

    /**
     * 自增请求缓存总数
     *
     * @param add 自增数量
     */
    public void addCacheRequestCount(long add) {
        cacheRequestCount.add(add);
    }

    /**
     * 自增请求被缓存方法总数
     *
     * @param add 自增数量
     */
    public void addCachedMethodRequestCount(long add) {
        cachedMethodRequestCount.add(add);
    }

    /**
     * 自增请求被缓存方法总耗时(毫秒)
     *
     * @param time 自增数量
     */
    public void addCachedMethodRequestTime(long time) {
        cachedMethodRequestTime.add(time);
    }

    public LongAdder getCacheRequestCount() {
        return cacheRequestCount;
    }

    public void setCacheRequestCount(LongAdder cacheRequestCount) {
        this.cacheRequestCount = cacheRequestCount;
    }

    public LongAdder getCachedMethodRequestCount() {
        return cachedMethodRequestCount;
    }

    public void setCachedMethodRequestCount(LongAdder cachedMethodRequestCount) {
        this.cachedMethodRequestCount = cachedMethodRequestCount;
    }

    public LongAdder getCachedMethodRequestTime() {
        return cachedMethodRequestTime;
    }

    public void setCachedMethodRequestTime(LongAdder cachedMethodRequestTime) {
        this.cachedMethodRequestTime = cachedMethodRequestTime;
    }


    public long getAndResetCacheRequestCount() {
        long lodValue = cacheRequestCount.longValue();
        cacheRequestCount.reset();
        return lodValue;
    }

    public long getAndResetCachedMethodRequestCount() {
        long lodValue = cachedMethodRequestCount.longValue();
        cachedMethodRequestCount.reset();
        return lodValue;
    }

    public long getAndResetCachedMethodRequestTime() {
        long lodValue = cachedMethodRequestTime.longValue();
        cachedMethodRequestTime.reset();
        return lodValue;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy