All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorMarkerModelRepository.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "Types.h"
7 #include "ICallback.h"
8 #include "CallbackCollection.h"
9 
10 
11 #include <map>
12 #include <string>
13 
14 namespace Eegeo
15 {
16  namespace Resources
17  {
18  namespace Interiors
19  {
20  namespace Markers
21  {
23  {
24  public:
26 
28 
30 
31  virtual void Add(const InteriorMarkerModel& interiorMarkerModel);
32  virtual void Remove(const InteriorMarkerModel& interiorMarkerModel);
33  virtual bool Contains(const InteriorId& interiorId) const;
34  virtual const InteriorMarkerModel& Get(const InteriorId& interiorId) const;
35 
36  virtual void RegisterNotifyAddedCallback(TCallback& callback);
37  virtual void RegisterNotifyRemovedCallback(TCallback& callback);
38  virtual void UnregisterNotifyAddedCallback(TCallback& callback);
39  virtual void UnregisterNotifyRemovedCallback(TCallback& callback);
40 
41  private:
42 
43  typedef std::map<std::string, const InteriorMarkerModel*> TInteriorIdToMarker;
44 
45  TInteriorIdToMarker m_markers;
46 
49  };
50  }
51  }
52  }
53 }