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