/**
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.geowebcache.storage.blobstore.memory;
import java.io.Serializable;
/**
* This class is a container of all the Statistics of the {@link CacheProvider} object used by the {@link MemoryBlobStore}.
*
* @author Nicola Lagomarsini, GeoSolutions
*
*/
public class CacheStatistics implements Serializable {
/** serialVersionUID */
private static final long serialVersionUID = -1049287017217353112L;
/** Cache hit count */
private long hitCount = 0;
/** Cache miss count */
private long missCount = 0;
/** Cache eviction count */
private long evictionCount = 0;
/** Cache total request count (hit + miss) */
private long totalCount = 0;
/** Cache hit rate */
private double hitRate = 0;
/** Cache miss rate */
private double missRate = 0;
/** Cache current memory occupation */
private double currentMemoryOccupation = 0;
/** Cache total size */
private long totalSize = 0;
/** Cache actual size */
private long actualSize = 0;
public CacheStatistics() {
}
// Copy Constructor
public CacheStatistics(CacheStatistics stats) {
this.setEvictionCount(stats.getEvictionCount());
this.setHitCount(stats.getHitCount());
this.setMissCount(stats.getMissCount());
this.setTotalCount(stats.getRequestCount());
this.setHitRate(stats.getHitRate());
this.setMissRate(stats.getMissRate());
this.setCurrentMemoryOccupation(stats.getCurrentMemoryOccupation());
this.setActualSize(stats.getActualSize());
this.setTotalSize(stats.getTotalSize());
}
/**
* @return the cache hit count
*/
public long getHitCount() {
return hitCount;
}
/**
* Setter for cache hit count
*
* @param hitCount
*/
public void setHitCount(long hitCount) {
this.hitCount = hitCount;
}
/**
* @return the cache miss count
*/
public long getMissCount() {
return missCount;
}
/**
* Setter for cache miss count
*
* @param missCount
*/
public void setMissCount(long missCount) {
this.missCount = missCount;
}
/**
* @return the cache eviction count
*/
public long getEvictionCount() {
return evictionCount;
}
/**
* Setter for cache eviction count
*
* @param evictionCount
*/
public void setEvictionCount(long evictionCount) {
this.evictionCount = evictionCount;
}
/**
* @return the cache total request count
*/
public long getRequestCount() {
return totalCount;
}
/**
* Setter for cache total count
*
* @param totalCount
*/
public void setTotalCount(long totalCount) {
this.totalCount = totalCount;
}
/**
* @return the cache hit rate
*/
public double getHitRate() {
return hitRate;
}
/**
* Setter for cache hit rate
*
* @param hitRate
*/
public void setHitRate(double hitRate) {
this.hitRate = hitRate;
}
/**
* @return the cache miss rate
*/
public double getMissRate() {
return missRate;
}
/**
* Setter for cache miss rate
*
* @param missRate
*/
public void setMissRate(double missRate) {
this.missRate = missRate;
}
/**
* @return the cache current memory occupation
*/
public double getCurrentMemoryOccupation() {
return currentMemoryOccupation;
}
/**
* Setter for cache memory occupation
*
* @param currentMemoryOccupation
*/
public void setCurrentMemoryOccupation(double currentMemoryOccupation) {
this.currentMemoryOccupation = currentMemoryOccupation;
}
/**
* @return the cache current total size
*/
public long getTotalSize() {
return totalSize;
}
/**
* Setter for cache total size
*
* @param totalSize
*/
public void setTotalSize(long totalSize) {
this.totalSize = totalSize;
}
/**
* @return the cache current actual size
*/
public long getActualSize() {
return actualSize;
}
/**
* Setter for cache actual size
*
* @param actualSize
*/
public void setActualSize(long actualSize) {
this.actualSize = actualSize;
}
}