All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
NavGraphFittingInfoService.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Routes.h"
7 #include "Navigation.h"
8 
9 namespace Eegeo
10 {
11  namespace Routes
12  {
13  namespace Fitting
14  {
16  {
17  public:
19  Fitting::NavGraphFittingInfoRepository& roadNavGraphFittingInfoRepository,
20  Fitting::NavGraphFittingInfoRepository& railNavGraphFittingInfoRepository,
21  const Resources::Roads::Navigation::NavigationGraphRepository& roadNavigationGraphRepository,
22  const Resources::Roads::Navigation::NavigationGraphRepository& railNavigationGraphRepository);
23 
24  virtual ~NavGraphFittingInfoService();
25 
26  void RoadNavGraphAdded(const Resources::Roads::Navigation::NavigationGraph& navGraph);
27  void RoadNavGraphRemoved(const Resources::Roads::Navigation::NavigationGraph& navGraph);
28  void RailNavGraphAdded(const Resources::Roads::Navigation::NavigationGraph& navGraph);
29  void RailNavGraphRemoved(const Resources::Roads::Navigation::NavigationGraph& navGraph);
30 
31  // enabled/disabled by RouteObserver as Route repo is added to or becomes empty
32  void Enable();
33  void Disable();
34 
35  private:
36  void NavGraphAdded(const Resources::Roads::Navigation::NavigationGraph& navGraph, Fitting::NavGraphFittingInfoRepository& fittingInfoRepository);
37  void NavGraphRemoved(const Resources::Roads::Navigation::NavigationGraph& navGraph, Fitting::NavGraphFittingInfoRepository& fittingInfoRepository);
38 
39  void PopulateFromNavGraphRepo(const Resources::Roads::Navigation::NavigationGraphRepository& navGraphRepo, Fitting::NavGraphFittingInfoRepository& fittingInfoRepository);
40 
41  static void DestroyAll(Fitting::NavGraphFittingInfoRepository& repo);
42 
43  Fitting::NavGraphFittingInfoRepository& m_roadNavGraphFittingInfoRepository;
44  Fitting::NavGraphFittingInfoRepository& m_railNavGraphFittingInfoRepository;
45 
46  const Resources::Roads::Navigation::NavigationGraphRepository& m_roadNavigationGraphRepository;
47  const Resources::Roads::Navigation::NavigationGraphRepository& m_railNavigationGraphRepository;
48  bool m_enabled;
49  };
50  }
51  }
52 }