All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ShapeTypes.h
1 #pragma once
2 
3 #include "EegeoShapes.h"
4 #include "Types.h"
5 #include "ShapeEventTypes.h"
6 #include "ModelRepository.h"
7 #include "ShapeModelRepositoryObserver.h"
8 #include "ShapeService.h"
9 #include "ShapeViewController.h"
10 
11 namespace Eegeo
12 {
13  namespace Shapes
14  {
15  template <
16  typename TShapeModel,
17  typename TShapeModelCreateParams
18  >
20  {
21  public:
22  virtual ~TShapeModelFactory() {};
23 
24  virtual TShapeModel* Create(const TShapeModelCreateParams& createParams) = 0;
25  };
26 
27 
28  template <
29  typename TShapeModel,
30  typename TShapeView
31  >
33  {
34  public:
35  virtual ~TShapeViewFactory() {}
36  virtual TShapeView* CreateView(const TShapeModel& shapeModel) = 0;
37  };
38 
39 
40  template <
41  typename TShapeEntityId,
42  typename TShapeEntity
43  >
44  class TShapeEntityRepository : public Eegeo::Labels::ModelRepository<TShapeEntityId, TShapeEntity*>
45  {
46 
47  };
48  }
49 }