Mercurial > hg > blitz_condensed
diff src/org/dancres/blitz/stats/OpStat.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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/dancres/blitz/stats/OpStat.java Sat Mar 21 11:00:06 2009 +0000 @@ -0,0 +1,86 @@ +package org.dancres.blitz.stats; + +/** + A class which tracks the number of times a particular operation has been + performed against a particular type. + */ +public class OpStat implements Stat, StatGenerator { + + public static final int TAKES = 1; + public static final int WRITES = 2; + public static final int READS = 3; + + private String theType; + private long theCount; + private int theOp; + + private long theId = StatGenerator.UNSET_ID; + + public OpStat(String aType, int anOp) { + theType = aType; + theOp = anOp; + } + + private OpStat(long anId, String aType, int anOp, long aCount) { + theId = anId; + theType = aType; + theOp = anOp; + theCount = aCount; + } + + public void setId(long anId) { + theId = anId; + } + + public long getId() { + return theId; + } + + public String getType() { + return theType; + } + + public int getOp() { + return theOp; + } + + public long getCount() { + return theCount; + } + + public synchronized void incCount() { + ++theCount; + } + + public synchronized Stat generate() { + OpStat myStat = new OpStat(theId, theType, theOp, theCount); + + return myStat; + } + + public String getOpTypeAsString() { + switch(theOp) { + case TAKES : { + return "Takes"; + } + + case WRITES : { + return "Writes"; + } + + case READS : { + return "Reads"; + } + + default : { + return "Unknown"; + } + } + } + + public String toString() { + String myOp = getOpTypeAsString(); + + return myOp + ":" + theType + " = " + theCount + " (" + theId + ")"; + } +}