CacheFile addFile(FileCacheable ncfile) { CacheFile file = new CacheFile(ncfile); list.add(file); this.lastModified.set(ncfile.getLastModified()); this.lastAccessed.set(System.currentTimeMillis()); this.countAccessed.incrementAndGet(); int hashcode = System.identityHashCode(ncfile); // using Object hashCode of the FileCacheable if (debug) { if (files.get(hashcode) != null) cacheLog.error("files (2) already has " + hashKey + " " + name); } files.put(hashcode, file); if (cacheLog.isDebugEnabled()) cacheLog.debug("CacheElement add to cache " + hashKey + " " + name); return file; }
void remove() { int hashcode = System.identityHashCode(ncfile); // using Object hashCode of the FileCacheable if (null == files.remove(hashcode)) cacheLog.warn("FileCacheARC {} could not remove {} from files", name, ncfile.getLocation()); if (!list.remove(this)) cacheLog.warn("FileCacheARC {} could not remove {} from list", name, ncfile.getLocation()); close(); }
@Override public List<String> showCache() { List<CacheElement.CacheFile> allFiles = new ArrayList<>(files.size()); for (CacheElement elem : cache.values()) { allFiles.addAll(elem.list); } Collections.sort(allFiles); // sort so oldest are on top List<String> result = new ArrayList<>(allFiles.size()); for (CacheElement.CacheFile file : allFiles) { result.add(file.toString()); } return result; }
CacheElement.CacheFile file = iter.next(); if (file.isLocked.compareAndSet(false, true)) { file.remove(); // remove from the containing CacheElement deleteList.add(file); iter.remove();
CacheElement.CacheFile file = iter.next(); if (file.isLocked.compareAndSet(false, true)) { file.remove(); // remove from the containing CacheElement deleteList.add(file); iter.remove();
/** * Show individual cache entries, add to formatter. * * @param format add to this */ @Override public void showCache(Formatter format) { ArrayList<CacheElement.CacheFile> allFiles = new ArrayList<>(files.size()); for (CacheElement elem : cache.values()) { allFiles.addAll(elem.list); } Collections.sort(allFiles); // sort so oldest are on top format.format("%nFileCacheARC %s (min=%d softLimit=%d hardLimit=%d scour=%d):%n", name, minElements, softLimit, hardLimit, period); format.format("isLocked accesses lastAccess location %n"); for (CacheElement.CacheFile file : allFiles) { String loc = file.ncfile != null ? file.ncfile.getLocation() : "null"; CalendarDate cd = CalendarDate.of(file.getLastAccessed()); format.format("%8s %9d %s %s %n", file.isLocked, file.getCountAccessed(), CalendarDateFormatter.toTimeUnits(cd), loc); } showStats(format); }
/** * Show individual cache entries, add to formatter. * * @param format add to this */ @Override public void showCache(Formatter format) { ArrayList<CacheElement.CacheFile> allFiles = new ArrayList<>(files.size()); for (CacheElement elem : cache.values()) { allFiles.addAll(elem.list); } Collections.sort(allFiles); // sort so oldest are on top format.format("%nFileCacheARC %s (min=%d softLimit=%d hardLimit=%d scour=%d):%n", name, minElements, softLimit, hardLimit, period); format.format("isLocked accesses lastAccess location %n"); for (CacheElement.CacheFile file : allFiles) { String loc = file.ncfile != null ? file.ncfile.getLocation() : "null"; CalendarDate cd = CalendarDate.of(file.getLastAccessed()); format.format("%8s %9d %s %s %n", file.isLocked, file.getCountAccessed(), CalendarDateFormatter.toTimeUnits(cd), loc); } showStats(format); }
CacheFile addFile(FileCacheable ncfile) { CacheFile file = new CacheFile(ncfile); list.add(file); this.lastModified.set(ncfile.getLastModified()); this.lastAccessed.set(System.currentTimeMillis()); this.countAccessed.incrementAndGet(); int hashcode = System.identityHashCode(ncfile); // using Object hashCode of the FileCacheable if (debug) { if (files.get(hashcode) != null) cacheLog.error("files (2) already has " + hashKey + " " + name); } files.put(hashcode, file); if (cacheLog.isDebugEnabled()) cacheLog.debug("CacheElement add to cache " + hashKey + " " + name); return file; }
public int compareTo(CacheFile o) { return Misc.compare(lastAccessed.get(), o.getLastAccessed()); } }
@Override public List<String> showCache() { List<CacheElement.CacheFile> allFiles = new ArrayList<>(files.size()); for (CacheElement elem : cache.values()) { allFiles.addAll(elem.list); } Collections.sort(allFiles); // sort so oldest are on top List<String> result = new ArrayList<>(allFiles.size()); for (CacheElement.CacheFile file : allFiles) { result.add(file.toString()); } return result; }
public int compareTo(CacheFile o) { return Misc.compare(lastAccessed.get(), o.getLastAccessed()); } }
void remove() { int hashcode = System.identityHashCode(ncfile); // using Object hashCode of the FileCacheable if (null == files.remove(hashcode)) cacheLog.warn("FileCacheARC {} could not remove {} from files", name, ncfile.getLocation()); if (!list.remove(this)) cacheLog.warn("FileCacheARC {} could not remove {} from list", name, ncfile.getLocation()); close(); }