All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FontInstanceService.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 "IFontInstanceService.h"
8 
9 #include <map>
10 
11 namespace Eegeo
12 {
13  namespace Fonts
14  {
16  {
17  public:
18  FontInstanceService(FontLoader& fontLoader,
19  FontInstanceRepository& fontInstanceRepository,
20  IFontInstanceIdBuilder& fontInstanceIdBuilder);
21 
23 
24  bool LoadSynchronous(const std::string& fontInstanceId, std::string& out_fontInstanceId);
25  void Release(const std::string& fontInstanceId);
26 
27  bool IsLoaded(const std::string& fontInstanceId) const;
28  const FontInstance& GetFontInstance(const std::string& fontInstanceId) const;
29 
30  private:
31  void Unload(const std::string& fontInstanceId);
32  FontLoader& m_fontLoader;
33  FontInstanceRepository& m_fontInstanceRepository;
34  IFontInstanceIdBuilder& m_fontInstanceIdBuilder;
35  };
36  }
37 }