Add a virtual function resetStats() that any SimObject can inherit

from that will get called any time stats are reset.

sim/sim_object.cc:
sim/sim_object.hh:
    add a virtual function resetStats that any simObject can reset
    when a statistics reset is initiated

--HG--
extra : convert_revision : fdad673142f6ff811f84c246d80e5d41e3c9d4d1
This commit is contained in:
Nathan Binkert 2003-11-05 18:21:18 -05:00
parent 9471a4d20f
commit b064b8a6fd
2 changed files with 31 additions and 3 deletions

View file

@ -28,12 +28,13 @@
#include <assert.h> #include <assert.h>
#include "sim/sim_object.hh" #include "base/callback.hh"
#include "base/inifile.hh" #include "base/inifile.hh"
#include "sim/configfile.hh"
#include "sim/host.hh"
#include "base/misc.hh" #include "base/misc.hh"
#include "base/trace.hh" #include "base/trace.hh"
#include "sim/configfile.hh"
#include "sim/host.hh"
#include "sim/sim_object.hh"
#include "sim/sim_stats.hh" #include "sim/sim_stats.hh"
using namespace std; using namespace std;
@ -72,6 +73,21 @@ SimObject::regFormulas()
{ {
} }
namespace {
class __SimObjectResetCB : public Callback
{
public:
__SimObjectResetCB() { Statistics::RegResetCallback(this); }
virtual void process() { SimObject::resetAllStats(); }
};
__SimObjectResetCB __theSimObjectResetCB;
}
void
SimObject::resetStats()
{
}
// //
// no default extra output // no default extra output
// //
@ -109,6 +125,14 @@ SimObject::regAllStats()
} }
} }
//
// static function: call resetStats() on all SimObjects.
//
void
SimObject::resetAllStats()
{
}
// //
// static function: call printExtraOutput() on all SimObjects. // static function: call printExtraOutput() on all SimObjects.
// //

View file

@ -68,6 +68,7 @@ class SimObject : public Serializeable
// register statistics for this object // register statistics for this object
virtual void regStats(); virtual void regStats();
virtual void regFormulas(); virtual void regFormulas();
virtual void resetStats();
// print extra results for this object not covered by registered // print extra results for this object not covered by registered
// statistics (called at end of simulation) // statistics (called at end of simulation)
@ -76,6 +77,9 @@ class SimObject : public Serializeable
// static: call reg_stats on all SimObjects // static: call reg_stats on all SimObjects
static void regAllStats(); static void regAllStats();
// static: call resetStats on all SimObjects
static void resetAllStats();
// static: call printExtraOutput on all SimObjects // static: call printExtraOutput on all SimObjects
static void printAllExtraOutput(std::ostream&); static void printAllExtraOutput(std::ostream&);
}; };