All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ITagService.h
1 // Copyright eeGeo Ltd (2012-2017), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "PoiSearch.h"
7 #include "ICallback.h"
8 #include <string>
9 #include <vector>
10 
11 namespace Eegeo
12 {
13  namespace PoiSearch
14  {
16  {
17  public:
18 
19  virtual ~ITagService() {}
20 
21  virtual void LoadTags() = 0;
22 
23  virtual bool HasLoadedTags() const = 0;
24 
25  virtual bool HasTag(const std::string& tag) const = 0;
26  virtual const std::string& GetDefaultIconKey() const = 0;
27  virtual const std::string& GetDefaultHumanReadableTag() const = 0;
28 
29  virtual bool FindIconKeyByTagsString(const std::string& tagsString, std::string& out_iconKey) const = 0;
30  virtual bool FindHumanReadableTagsByTagString(const std::string& tagsString, std::vector<std::string>& out_readableTags) const = 0;
31 
32  virtual void RegisterTagsLoadedCallback(Helpers::ICallback0& callback) = 0;
33  virtual void UnregisterTagsLoadedCallback(Helpers::ICallback0& callback) = 0;
34  };
35  }
36 }
37