All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RouteSimulationService.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 "Streaming.h"
8 #include <vector>
9 
10 namespace Eegeo
11 {
12  namespace Routes
13  {
14  namespace Simulation
15  {
17  {
18  RouteSimulationSessionFactory& m_routeSimulationSessionFactory;
19  RouteSimulationSessionRepository& m_routeSimulationSessionRepository;
20 
21  public:
22  RouteSimulationService(RouteSimulationSessionFactory& routeSimulationSessionFactory,
23  RouteSimulationSessionRepository& routeSimulationSessionRepository);
24 
25  RouteSimulationSession* BeginRouteSimulationSession(const Route& route);
26 
27  void EndRouteSimulationSession(const RouteSimulationSession* session);
28 
29  void EndAllSimulationSessionsForRoute(const Route *pRoute);
30 
31  void HandleFittedRouteChanged(const Fitting::FittedRoute& fittedRoute);
32 
33 
34  void Update(float dt);
35 
36  private:
37  void GetSessionsForRoute(const Route* route, std::vector<RouteSimulationSession*>& out_sessionsForRoute) const;
38  };
39  }
40  }
41 }