David's final changes: more profiler features, fixes.
[ipdf/code.git] / src / profiler.h
index a20b8d8..ffffae9 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef _PROFILER_H
 #define _PROFILER_H
 
+#include <stdint.h>
 #include <map>
 #include <string>
 #include <stack>
@@ -12,12 +13,16 @@ namespace IPDF
        class Profiler
        {
        public:
-               Profiler() {}
+               Profiler() : m_enabled(false) {}
                
                void BeginZone(std::string name);
                void EndZone();
 
                void EndFrame();
+
+               void Enable(bool enabled) { m_enabled = enabled; }
+
+               void AddCounter(std::string name, uint64_t amt);
        private:
                struct ProfileZone
                {
@@ -30,7 +35,9 @@ namespace IPDF
                };
 
                std::map<std::string, ProfileZone> m_zones;
+               std::map<std::string, uint64_t> m_counters;
                std::stack<std::string> m_zone_stack;
+               bool m_enabled;
        };
 
        extern Profiler g_profiler;

UCC git Repository :: git.ucc.asn.au