All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
MarkerCategoryService.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 
6 #include "Types.h"
7 #include "Markers.h"
8 #include "Labels.h"
9 #include "LabelLayer.h"
10 
11 #include <vector>
12 
13 namespace Eegeo
14 {
15  namespace Markers
16  {
18  {
19  public:
20  virtual ~IMarkerCategoryService() {}
21 
22  virtual const Labels::LabelAnchorCategory& GetCategory(const std::string& labelStyleName, bool isIndoor) = 0;
23  };
24 
26  {
27  public:
29  const Labels::ILabelLayerService& labelLayerService,
30  Labels::ILabelStyleBindingRepository& labelStyleBindingRepository,
31  Labels::LabelLayer::IdType outdoorLabelLayerId,
32  Labels::LabelLayer::IdType indoorLabelLayerId);
33 
35 
36  const Labels::LabelAnchorCategory& GetCategory(const std::string& labelStyleName, bool isIndoor);
37 
38  private:
39  std::string MakeCategoryName(const std::string& labelStyleName, const Labels::LabelLayer::IdType& layerId) const;
40 
41  Labels::LabelAnchorCategory* Create(const std::string& categoryName, const Labels::LabelLayer::IdType& layerId);
42 
43  Labels::ILabelAnchorCategoryRepository& m_labelAnchorCategoryRepository;
44  const Labels::ILabelLayerService& m_labelLayerService;
45  Labels::ILabelStyleBindingRepository& m_labelStyleBindingRepository;
46  const Labels::LabelLayer::IdType m_outdoorLabelLayerId;
47  const Labels::LabelLayer::IdType m_indoorLabelLayerId;
48 
49  std::vector<std::string> m_createdLabelAnchorCategories;
50 
51  };
52  }
53 }