/** * Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT * All rights reserved. Use is subject to license terms. See LICENSE.TXT */ package org.diirt.datasource.timecache; import java.util.ArrayList; import java.util.List; import java.util.SortedMap; import java.util.TreeMap; import org.diirt.datasource.timecache.query.QueryStatistics; /** * Statistics of {@link Cache}. * @author Fred Arnaud (Sopra Group) - ITER */ public class CacheStatistics { private static CacheStatistics stats = new CacheStatistics(); public static CacheStatistics get() { return stats; } private SortedMap<String, PVCacheStatistics> pvStats = new TreeMap<String, PVCacheStatistics>(); private List<QueryStatistics> queryStats = new ArrayList<QueryStatistics>(); public void addQueryStats(QueryStatistics stats) { if (stats != null) queryStats.add(stats); } public void addPVStats(String channelName, PVCacheStatistics stats) { if (stats != null) pvStats.put(channelName, stats); } public void print() { System.out.println("\n" + printQueryStats()); System.out.println(printPVCacheStats()); } private String printQueryStats() { StringBuilder sb = new StringBuilder(); sb.append("Queries:\n"); for (QueryStatistics stats : queryStats) { sb.append(stats.toConsoleString()); sb.append("\n"); } return sb.toString(); } private String printPVCacheStats() { StringBuilder sb = new StringBuilder(); for (PVCacheStatistics stats : pvStats.values()) { sb.append(stats.toConsoleString()); sb.append("\n"); } return sb.toString(); } }