diff options
Diffstat (limited to 'sim')
-rw-r--r-- | sim/sim_object.cc | 30 | ||||
-rw-r--r-- | sim/sim_object.hh | 4 |
2 files changed, 31 insertions, 3 deletions
diff --git a/sim/sim_object.cc b/sim/sim_object.cc index af6a258ff..5c8e3eb9b 100644 --- a/sim/sim_object.cc +++ b/sim/sim_object.cc @@ -28,12 +28,13 @@ #include <assert.h> -#include "sim/sim_object.hh" +#include "base/callback.hh" #include "base/inifile.hh" -#include "sim/configfile.hh" -#include "sim/host.hh" #include "base/misc.hh" #include "base/trace.hh" +#include "sim/configfile.hh" +#include "sim/host.hh" +#include "sim/sim_object.hh" #include "sim/sim_stats.hh" 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 // @@ -110,6 +126,14 @@ SimObject::regAllStats() } // +// static function: call resetStats() on all SimObjects. +// +void +SimObject::resetAllStats() +{ +} + +// // static function: call printExtraOutput() on all SimObjects. // void diff --git a/sim/sim_object.hh b/sim/sim_object.hh index 1a365651b..6b26a1cb0 100644 --- a/sim/sim_object.hh +++ b/sim/sim_object.hh @@ -68,6 +68,7 @@ class SimObject : public Serializeable // register statistics for this object virtual void regStats(); virtual void regFormulas(); + virtual void resetStats(); // print extra results for this object not covered by registered // statistics (called at end of simulation) @@ -76,6 +77,9 @@ class SimObject : public Serializeable // static: call reg_stats on all SimObjects static void regAllStats(); + // static: call resetStats on all SimObjects + static void resetAllStats(); + // static: call printExtraOutput on all SimObjects static void printAllExtraOutput(std::ostream&); }; |