All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorsModelRepository.h
1 // Copyright eeGeo Ltd (2012-2015), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "ICallback.h"
7 #include "CallbackCollection.h"
8 #include "Types.h"
9 #include <map>
10 #include <vector>
11 #include <string>
12 
13 namespace Eegeo
14 {
15  namespace Resources
16  {
17  namespace Interiors
18  {
19  typedef std::map<std::string, InteriorsModel*> TInteriorsContainer;
20 
22  {
23  public:
24 
27 
28  void AddInterior(InteriorsModel& pModelToAdd);
29  void RemoveInterior(const std::string& interiorName);
30 
31  bool HasInterior(const std::string& interiorName) const;
32  InteriorsModel& GetInterior(const std::string& interiorName) const;
33 
34  TInteriorsContainer& GetAllInteriors();
35 
36  void RegisterAddedCallback(Helpers::ICallback1<InteriorsModel&>& callback);
37  void RegisterRemovedCallback(Helpers::ICallback1<InteriorsModel&>& callback);
38  void UnregisterAddedCallback(Helpers::ICallback1<InteriorsModel&>& callback);
39  void UnregisterRemovedCallback(Helpers::ICallback1<InteriorsModel&>& callback);
40  private:
41 
42  TInteriorsContainer m_interiors;
43 
46  };
47  }
48  }
49 }