Merge 13511:13830 from trunk
[reactos.git] / reactos / tools / rbuild / backend / backend.h
1 #ifndef __BACKEND_H
2 #define __BACKEND_H
3
4 #include "../rbuild.h"
5
6 class Backend;
7
8 typedef Backend* BackendFactory ( Project& project );
9
10 class Backend
11 {
12 public:
13 class Factory
14 {
15 static std::map<std::string,Factory*>* factories;
16 static int ref;
17
18 protected:
19
20 Factory ( const std::string& name_ );
21 virtual ~Factory();
22
23 virtual Backend* operator() ( Project& ) = 0;
24
25 public:
26 static Backend* Create ( const std::string& name,
27 Project& project );
28
29 private:
30 };
31
32 protected:
33 Backend ( Project& project );
34
35 public:
36 virtual void Process () = 0;
37
38 protected:
39 Project& ProjectNode;
40 };
41
42 #endif /* __BACKEND_H */