package com.github.shansun.sparrow.actor.statistic;
/**
* 用法示例:<br>
* <code>
* CountStatistic stat = Statistics.getCountStat("Your-Stats-Name"); <br>
* stat.incr();<br>
* long cnt = stat.getCount();<br>
* </code>
*
* @author: lanbo <br>
* @version: 1.0 <br>
* @date: 2012-8-13
*/
public class Statistics {
static Stats stats = new StatsImpl();
public static CountStatistic getCountStat(String name) {
Statistic statistic = stats.getStatistic(name);
if (statistic == null || !(statistic instanceof CountStatistic)) {
statistic = new CountStatisticImpl(name);
stats.addStat(name, statistic);
}
return (CountStatistic) statistic;
}
public static TimeStatistic getTimeStat(String name) {
Statistic statistic = stats.getStatistic(name);
if (statistic == null || !(statistic instanceof TimeStatistic)) {
statistic = new TimeStatisticImpl(name);
stats.addStat(name, statistic);
}
return (TimeStatistic) statistic;
}
public static void removeCountStat(String name) {
Statistic statistic = stats.getStatistic(name);
if (statistic != null && statistic instanceof CountStatistic) {
stats.removeStat(name);
}
}
public static void removeTimeStat(String name) {
Statistic statistic = stats.getStatistic(name);
if (statistic != null && statistic instanceof TimeStatistic) {
stats.removeStat(name);
}
}
public static void addStat(String name, Statistic statistic) {
stats.addStat(name, statistic);
}
public static void removeStat(String name) {
stats.removeStat(name);
}
public static Statistic getStatistic(String paramString) {
return stats.getStatistic(paramString);
}
public static Statistic[] getStatistics() {
return stats.getStatistics();
}
public static String[] getStatisticNames() {
return stats.getStatisticNames();
}
}