All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
CityThemeRepository.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "ICityThemeRepository.h"
6 #include "Types.h"
7 #include "CityThemes.h"
8 #include "CityThemeData.h"
9 #include "Space.h"
10 #include <vector>
11 #include <string>
12 
13 namespace Eegeo
14 {
15  namespace Resources
16  {
17  namespace CityThemes
18  {
20  {
21  private:
22  std::vector<CityThemeData*> m_themes;
23 
24  public:
27 
28  void AddTheme(CityThemeData* pTheme);
29  void ClearThemes();
30 
31  const CityThemeData* GetThemeDataByName(const std::string& themeName) const;
32  const CityThemeData* GetThemeDataByLocation(const Space::LatLong& latLong) const;
33  const CityThemeData* GetThemeDataByLocationAndNameContaining(const Space::LatLong& latLong, const std::string& nameContains) const;
34 
35  bool HasThemeWithNameContaining(const std::string& substring) const;
36  std::vector<std::string> GetAvailableThemeNames() const;
37 
38  int GetNumberOfThemes() const;
39  const CityThemeData& GetCityThemeAt(int index) const;
40  };
41  }
42  }
43 }