All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IndoorMapEntityModelRepository.h
1 #pragma once
2 
3 #include "IndoorMapEntityInformationTypes.h"
4 
5 #include <unordered_map>
6 #include <set>
7 
8 namespace Eegeo
9 {
10  namespace IndoorMapEntityInformation
11  {
13  {
14  public:
15  bool Contains(const IndoorMapEntityModelId id) const;
16  IndoorMapEntityModel* Get(const IndoorMapEntityModelId id) const;
17  void Add(IndoorMapEntityModel* pIndoorMapEntityModel);
18  void Remove(const IndoorMapEntityModelId id);
19  void Clear();
20 
21  std::vector<IndoorMapEntityModelId> GetAllForIndoorMapEntityInformationModelId(IndoorMapEntityInformationModelId indoorMapEntityInformationModelId) const;
22 
23  IndoorMapEntityModel* FindByIndoorMapEntityIdOrNull(
24  IndoorMapEntityInformationModelId indoorMapEntityInformationModelId,
25  const std::string &indoorMapEntityId
26  ) const;
27  private:
28  std::unordered_map<IndoorMapEntityModelId, IndoorMapEntityModel*> m_store;
29  std::set<InformationModelIdEntityModelIdPair> m_informationModelIdEntityModelIdOrderedPairs;
30  std::set<EntityIdEntityModelIdPair> m_entityIdEntityModelIdOrderedPairs;
31  };
32  }
33 }