much better factory implementation - thanks art yerkes
[reactos.git] / reactos / tools / rbuild / backend / backend.h
index 5ed778f..3219e79 100644 (file)
@@ -9,23 +9,23 @@ typedef Backend* BackendFactory ( Project& project );
 \r
 class Backend\r
 {\r
+public:\r
        class Factory\r
        {\r
-       public:\r
+               static std::vector<Factory*>* factories;\r
                std::string name;\r
-               BackendFactory* factory;\r
 \r
-               Factory ( const std::string& name_, BackendFactory* factory_ )\r
-                       : name(name_), factory(factory_)\r
-               {\r
-               }\r
-       };\r
+       protected:\r
 \r
-       static std::vector<Factory*> factories;\r
+               Factory ( const std::string& name_ );\r
 \r
-public:\r
-       static void InitFactories();\r
-       static Backend* Create ( const std::string& name, Project& project );\r
+               virtual Backend* operator() ( Project& ) = 0;\r
+\r
+       public:\r
+               static Backend* Create ( const std::string& name, Project& project );\r
+\r
+       private:\r
+       };\r
 \r
 protected:\r
        Backend ( Project& project );\r