![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2012 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00009 00010 #include <vrvCore/vrvCore.h> 00011 #include <vrvCore/DtDe.h> 00012 #include <vrvUtil/DtVirtualBaseClass.h> 00013 00014 #include <boost/signals.hpp> 00015 #include <boost/unordered_map.hpp> 00016 00017 namespace makVrv 00018 { 00019 class DtPerformanceStatsManagerSignaler; 00020 00026 class DT_DLL_VRVCORE DtPerformanceStatsManager : public DtVirtualBaseClass 00027 { 00028 public: 00030 static DtPerformanceStatsManager& instance(DtDe& de); 00031 00033 virtual ~DtPerformanceStatsManager(); 00034 00040 virtual void add(const std::string& statsSetName, DtStatsSet* statsSet); 00041 00045 virtual void remove(const std::string& statsSetName); 00046 00050 virtual DtStatsSet* find(const std::string& statsSetName); 00051 00057 virtual void setActive(const std::string& statsSetName); 00058 00062 virtual DtStatsSet* activeSet(); 00063 00067 virtual void tickStats(double tickTime); 00068 00070 typedef std::vector<std::string> NameList; 00071 00073 NameList names() const; 00074 00075 protected: 00077 DtPerformanceStatsManager(DtDe& de); 00078 00079 protected: 00080 DtDe& myDe; 00081 DtPerformanceStatsManagerSignaler& mySignaler; 00082 DtStatsSet* myActiveStatsSet; 00083 00084 typedef boost::unordered_map<std::string, DtStatsSet*> PerformanceStatsMap; 00085 PerformanceStatsMap myStatsSets; 00086 }; 00087 00090 class DT_DLL_VRVCORE DtPerformanceStatsManagerSignaler : public DtVirtualBaseClass 00091 { 00092 public: 00094 static DtPerformanceStatsManagerSignaler& instance(DtDe& de); 00095 00097 virtual ~DtPerformanceStatsManagerSignaler(); 00098 00100 boost::signal<void (DtStatsSet*)> signal_setAdded; 00101 00103 boost::signal<void (DtStatsSet*)> signal_setAboutToBeRemoved; 00104 00108 boost::signal<void (DtStatsSet*)> signal_activeSetChanged; 00109 00110 protected: 00112 DtPerformanceStatsManagerSignaler(); 00113 00114 }; 00115 }