| Index: src/IceTimerTree.h
|
| diff --git a/src/IceTimerTree.h b/src/IceTimerTree.h
|
| index 029b7f46bb0186067499097f69a06f453be2c7ad..289ea2deecee780cb35e58dcdc235a466f7f0ebe 100644
|
| --- a/src/IceTimerTree.h
|
| +++ b/src/IceTimerTree.h
|
| @@ -15,6 +15,8 @@
|
| #ifndef SUBZERO_SRC_ICETIMERTREE_H
|
| #define SUBZERO_SRC_ICETIMERTREE_H
|
|
|
| +#include "IceTimerTree.def"
|
| +
|
| namespace Ice {
|
|
|
| class TimerTreeNode;
|
| @@ -38,23 +40,32 @@ public:
|
| };
|
|
|
| class TimerStack {
|
| - TimerStack(const TimerStack &) = delete;
|
| + // TimerStack(const TimerStack &) = delete;
|
| TimerStack &operator=(const TimerStack &) = delete;
|
|
|
| public:
|
| - TimerStack(const IceString &TopLevelName);
|
| - static TimerIdT getTimerID(const IceString &Name);
|
| + enum TimerTag {
|
| +#define X(tag) TT_##tag,
|
| + TIMERTREE_TABLE
|
| +#undef X
|
| + TT__num
|
| + };
|
| + TimerStack(const IceString &Name);
|
| + TimerIdT getTimerID(const IceString &Name);
|
| void push(TimerIdT ID);
|
| void pop(TimerIdT ID);
|
| - void dump(Ostream &Str);
|
| + void dump(Ostream &Str, bool DumpCumulative);
|
|
|
| private:
|
| void update();
|
| static double timestamp();
|
| + const IceString Name;
|
| const double FirstTimestamp;
|
| double LastTimestamp;
|
| uint64_t StateChangeCount;
|
| - static std::vector<IceString> IDs; // indexed by TimerIdT
|
| + // IDsIndex maps a symbolic timer name to its integer ID.
|
| + std::map<IceString, TimerIdT> IDsIndex;
|
| + std::vector<IceString> IDs; // indexed by TimerIdT
|
| std::vector<TimerTreeNode> Nodes; // indexed by TTindex
|
| std::vector<double> LeafTimes; // indexed by TimerIdT
|
| TTindex StackTop;
|
|
|