diff src/org/dancres/blitz/stats/MemoryStat.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/MemoryStat.java	Sat Mar 21 11:00:06 2009 +0000
@@ -0,0 +1,49 @@
+package org.dancres.blitz.stats;
+
+/**
+   <p>Tracks memory usage statistics.  This stat is permanently enabled and
+   cannot be switched on or off.  It's maintenance costs are entirely absorbed
+   by the caller recovering stats from StatsBoard.</p>
+ */
+public class MemoryStat implements Stat, StatGenerator {
+    private long theId = StatGenerator.UNSET_ID;
+
+    private long theMaxMemory;
+    private long theCurrentMemory;
+
+    MemoryStat() {
+    }
+
+    MemoryStat(long anId, long aMaxMem, long aCurrentMem) {
+        theId = anId;
+        theMaxMemory = aMaxMem;
+        theCurrentMemory = aCurrentMem;
+    }
+
+    public void setId(long anId) {
+        theId = anId;
+    }
+
+    public long getId() {
+        return theId;
+    }
+
+    public synchronized Stat generate() {
+        MemoryStat myStat = new MemoryStat(theId, 
+                                           Runtime.getRuntime().maxMemory(),
+                                           Runtime.getRuntime().totalMemory());
+        return myStat;
+    }
+
+    public long getMaxMemory() {
+        return theMaxMemory;
+    }
+
+    public long getCurrentMemory() {
+        return theCurrentMemory;
+    }
+
+    public String toString() {
+        return "Memory: " + theCurrentMemory + " of: " + theMaxMemory;
+    }
+}