All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FontInstanceRepository.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Fonts.h"
7 #include <map>
8 #include <vector>
9 #include <string>
10 
11 namespace Eegeo
12 {
13  namespace Fonts
14  {
16  {
17  public:
19 
21 
22  bool Contains(const std::string& key) const;
23  FontInstance* Get(const std::string& key) const;
24 
25 
26  void Add(const std::string& key, FontInstance* pFontInstance);
27  void Remove(const std::string& key);
28 
29  int GetReferenceCount(const std::string& key) const;
30  void IncrementReferenceCount(const std::string& key);
31  void DecrementReferenceCount(const std::string& key);
32 
33  std::vector<std::string> AllKeys() const;
34 
35  private:
36  typedef std::pair<int, FontInstance*> RefCountedFontInstance;
37  typedef std::map<std::string, RefCountedFontInstance> TStore;
38  TStore m_store;
39  };
40  }
41 }