All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IInteriorMetaDataService.h
1 #pragma once
2 
3 #include "Space.h"
4 #include "Interiors.h"
5 #include "InteriorMetaDataAccessPermission.h"
6 #include "InteriorMetaDataEventTypes.h"
7 
8 #include <string>
9 
10 namespace Eegeo
11 {
12  namespace Resources
13  {
14  namespace Interiors
15  {
16  namespace MetaData
17  {
19  {
20  public:
21  virtual ~IInteriorMetaDataService() {}
22 
23  virtual bool Exists(const std::string& indoorMapId) const = 0;
24 
26  virtual void Request(const std::string& indoorMapId) = 0;
27 
28  virtual bool IsRequesting(const std::string& indoorMapId) const = 0;
29 
32  virtual bool TryRemove(const std::string& indoorMapId) = 0;
33 
34  virtual bool TryGetUserData(const std::string& indoorMapId, std::string& out_userData) const = 0;
35 
36  virtual bool TryGetAccessPermission(const std::string& indoorMapId, AccessPermission::Type& out_accessPermission) const = 0;
37 
38  virtual bool TryGetLocation(const std::string& indoorMapId, Space::LatLong& out_location) const = 0;
39 
40  virtual IInteriorMetaDataModelAddedEvent& GetInteriorMetaDataModelAddedEvent() const = 0;
41 
42  virtual IInteriorMetaDataModelRemovedEvent& GetInteriorMetaDataModelRemovedEvent() const = 0;
43 
44  virtual IInteriorMetaDataRequestCancelledEvent& GetInteriorMetaDataRequestCancelledEvent() const = 0;
45  };
46  }
47  }
48  }
49 }