Mercurial > hg > blitz_condensed
comparison 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 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:3dc0c5604566 |
---|---|
1 package org.dancres.blitz.stats; | |
2 | |
3 import java.util.LinkedList; | |
4 import java.util.Iterator; | |
5 | |
6 import java.util.logging.Logger; | |
7 | |
8 import org.dancres.blitz.Logging; | |
9 | |
10 /** | |
11 All available performance statistics are held here. | |
12 */ | |
13 public class StatsBoard { | |
14 static final Logger theLogger = | |
15 Logging.newLogger("org.dancres.blitz.stats.StatsBoard"); | |
16 | |
17 private static StatsBoard theBoard = new StatsBoard(); | |
18 | |
19 private LinkedList theStatGenerators = new LinkedList(); | |
20 | |
21 private long theNextId = 1; | |
22 | |
23 private StatsBoard() { | |
24 add(new MemoryStat()); | |
25 add(new HostStat()); | |
26 add(new ThreadStat()); | |
27 } | |
28 | |
29 public static StatsBoard get() { | |
30 return theBoard; | |
31 } | |
32 | |
33 public synchronized void add(StatGenerator aStat) { | |
34 if (! theStatGenerators.contains(aStat)) { | |
35 if (aStat.getId() == StatGenerator.UNSET_ID) | |
36 aStat.setId(theNextId++); | |
37 | |
38 theStatGenerators.add(aStat); | |
39 } | |
40 } | |
41 | |
42 public synchronized void remove(StatGenerator aStat) { | |
43 theStatGenerators.remove(aStat); | |
44 } | |
45 | |
46 public Stat[] getStats() { | |
47 StatGenerator[] myGenerators; | |
48 | |
49 synchronized(this) { | |
50 myGenerators = new StatGenerator[theStatGenerators.size()]; | |
51 myGenerators = | |
52 (StatGenerator[]) theStatGenerators.toArray(myGenerators); | |
53 } | |
54 | |
55 Stat[] myStats = new Stat[myGenerators.length]; | |
56 | |
57 for (int i = 0; i < myGenerators.length; i++) { | |
58 myStats[i] = myGenerators[i].generate(); | |
59 } | |
60 | |
61 return myStats; | |
62 } | |
63 } |