All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FrameProfile.h
1 // Copyright (c) 2014 eeGeo. All rights reserved.
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Pool.h"
7 #include "Profile.h"
8 #include "PoolHandle.h"
9 #include <map>
10 #include <string>
11 
12 namespace Eegeo
13 {
14  namespace Debug
15  {
16  namespace Profile
17  {
18  class FrameProfile : protected Eegeo::NonCopyable
19  {
20  public:
21  FrameProfile();
22 
23  double GetProfileDuration(const std::string& profile);
24  void SetProfileDuration(const std::string& profile, double duration);
25 
26  ProfileRecord* GetRootRecord() const;
27  void SetRootRecord(ProfileRecord* profileRecord);
28  void SetHandle(DataStructures::PoolHandle& handle);
29  void ReleaseToPool(Eegeo::DataStructures::Pool<FrameProfile*>& frameProfilePool,
31  private:
32  ProfileRecord* m_pRootRecord;
33  std::map<std::string, double> m_profileDurations;
35  };
36  }
37  }
38 }