📄 cache.java
字号:
/*
* FileName CacheImpl.java
* Create Time 2005-8-1 17:00:23
* Author shiwei
* Descript implements Cache
* Version
*/
package com.snoics.reptile.cache;
import java.util.ArrayList;
import java.util.HashMap;
import com.snoics.base.util.file.*;
import com.snoics.reptile.system.common.*;
public class Cache implements ICache{
private ICacheFile cacheFile=new CacheFile();
private ArrayList reptilecache=new ArrayList();
private SnoicsFile snoicsfile=new SnoicsFile();
private CommonObject commonObject=new CommonObject();
/**
* 设置缓存数据
* @param reptilecache
*/
public void setCache(ArrayList reptilecache){
this.reptilecache=reptilecache;
}
/**
* 获取缓存数据
*/
public ArrayList getCache(){
if(reptilecache==null){
reptilecache=new ArrayList();
}
return reptilecache;
}
/**
* 从站点总缓存中取得一个单位的缓存
* @return HashMap
*/
public HashMap getCacheUnit(ArrayList reptilecache){
HashMap cacheunit=null;
if(reptilecache.isEmpty()){
cacheunit=new HashMap();
reptilecache.add(cacheunit);
}else{
int length=reptilecache.size();
for(int i=0;i<length;i++){
HashMap tempcacheunit=(HashMap)reptilecache.get(i);
int tempcachesize=tempcacheunit.size();
int cachesize=Integer.parseInt(commonObject.getConfigInfo(Common.CONFIGFILE_NODE_CACHEUNITSIZE));
if(tempcachesize<cachesize){
return tempcacheunit;
}
}
cacheunit=new HashMap();
reptilecache.add(cacheunit);
}
return cacheunit;
}
/**
* 获取当前缓存使用的大小
* @return int
*/
public int getAllCacheUnitSize(){
int allcount=0;
int length=reptilecache.size();
for(int i=0;i<length;i++){
HashMap unit=(HashMap)reptilecache.get(i);
int unitsize=unit.size();
allcount+=unitsize;
}
return allcount;
}
/**
* 将数据从缓存文件中读取到内存,
* 数据保存在ArrayList里面,ArrayList里的对象是HashMap,
* HashMap的个数由缓存中的数据量和配置文件中的cachesize决定
*/
public void read(){
String cachefilename=cacheFile.getCacheFile();
reptilecache=(ArrayList)snoicsfile.readObject(cachefilename);
}
/**
* 将数据从内存中保存到缓存文件,缓存文件中原有的数据被清空
*/
public void save(){
String cachefilename=cacheFile.getCacheFile();
snoicsfile.saveObject(reptilecache,cachefilename);
}
/**
* 重新读取缓存数据,内存中原有的数据被清空
*
*/
public void reRead(){
clearCacheMemory();
read();
}
/**
* 清空内存中的缓存数据
*
*/
public void clearCacheMemory(){
reptilecache=null;
commonObject.setReptileCache(null);
}
/**
* 缓存文件中所有的数据都被清空
*
*/
public void clearCacheFile(){
cacheFile.deleteCacheFile();
cacheFile.createCacheFile();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -