Copy wininet to branch
[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 bool verbose );
10
11 class Backend
12 {
13 public:
14 class Factory
15 {
16 static std::map<std::string,Factory*>* factories;
17 static int ref;
18
19 protected:
20
21 Factory ( const std::string& name_ );
22 virtual ~Factory();
23
24 virtual Backend* operator() ( Project&,
25 bool verbose,
26 bool cleanAsYouGo ) = 0;
27
28 public:
29 static Backend* Create ( const std::string& name,
30 Project& project,
31 bool verbose,
32 bool cleanAsYouGo );
33 };
34
35 protected:
36 Backend ( Project& project,
37 bool verbose,
38 bool cleanAsYouGo );
39
40 public:
41 virtual void Process () = 0;
42 Project& ProjectNode;
43 bool verbose;
44 bool cleanAsYouGo;
45 };
46
47 #endif /* __BACKEND_H */