All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
MarkerModelFactory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "IMarkerService.h"
6 #include "Types.h"
7 #include "Markers.h"
8 #include "Labels.h"
9 #include "Positioning.h"
10 
11 #include <string>
12 
13 namespace Eegeo
14 {
15  namespace Markers
16  {
18  {
19  public:
20  virtual ~IMarkerModelFactory() {};
21 
22  virtual MarkerModel* Create(const MarkerCreateParams& markerCreateParams) = 0;
23  };
24 
26  {
27  public:
28  MarkerModelFactory(IMarkerModelIdGenerator& markerModelIdGenerator,
29  Labels::ILabelModelFactory& labelModelFactory,
30  Positioning::IPointOnMapFactory& pointOnMapFactory,
31  const std::string& markersLabelIdPrefix,
32  IMarkerCategoryService& markerCategoryService,
33  const Positioning::IPositioningViewComponent& positioningViewComponent,
34  MarkerHiddenChangedEvent& markerHiddenChangedEvent);
35 
36 
37  MarkerModel* Create(const MarkerCreateParams& markerCreateParams);
38  private:
39  IMarkerModelIdGenerator& m_markerModelIdGenerator;
40  Labels::ILabelModelFactory& m_labelModelFactory;
41  Positioning::IPointOnMapFactory& m_pointOnMapFactory;
42  const std::string m_markersLabelIdPrefix;
43  IMarkerCategoryService& m_markerCategoryService;
44  const Positioning::IPositioningViewComponent& m_positioningViewComponent;
45  MarkerHiddenChangedEvent& m_markerHiddenChangedEvent;
46  };
47  }
48 }