\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