Mercurial > hg > blitz_condensed
view src/org/dancres/blitz/stats/StatsBoard.java @ 0:3dc0c5604566
Initial checkin of blitz 2.0 fcs - no installer yet.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 11:00:06 +0000 |
parents | |
children |
line wrap: on
line source
package org.dancres.blitz.stats; import java.util.LinkedList; import java.util.Iterator; import java.util.logging.Logger; import org.dancres.blitz.Logging; /** All available performance statistics are held here. */ public class StatsBoard { static final Logger theLogger = Logging.newLogger("org.dancres.blitz.stats.StatsBoard"); private static StatsBoard theBoard = new StatsBoard(); private LinkedList theStatGenerators = new LinkedList(); private long theNextId = 1; private StatsBoard() { add(new MemoryStat()); add(new HostStat()); add(new ThreadStat()); } public static StatsBoard get() { return theBoard; } public synchronized void add(StatGenerator aStat) { if (! theStatGenerators.contains(aStat)) { if (aStat.getId() == StatGenerator.UNSET_ID) aStat.setId(theNextId++); theStatGenerators.add(aStat); } } public synchronized void remove(StatGenerator aStat) { theStatGenerators.remove(aStat); } public Stat[] getStats() { StatGenerator[] myGenerators; synchronized(this) { myGenerators = new StatGenerator[theStatGenerators.size()]; myGenerators = (StatGenerator[]) theStatGenerators.toArray(myGenerators); } Stat[] myStats = new Stat[myGenerators.length]; for (int i = 0; i < myGenerators.length; i++) { myStats[i] = myGenerators[i].generate(); } return myStats; } }