BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef _SFIDL_FACTORY_H_ 00003 #define _SFIDL_FACTORY_H_ 00004 00005 #include "sfidl-utils.hh" 00006 00007 namespace Sfidl { 00008 00009 class Options; 00010 class Parser; 00011 class CodeGenerator; 00012 00013 class Factory { 00014 protected: 00015 Factory(); 00016 virtual ~Factory(); 00017 00018 public: 00019 /* 00020 * creation routine - should create a code generator 00021 */ 00022 virtual CodeGenerator *create (const Parser& parser) const = 0; 00023 00024 /* 00025 * returns the command line option (e.g. --plugin) 00026 */ 00027 virtual String option () const = 0; 00028 00029 /* 00030 * returns the full description 00031 */ 00032 virtual String description () const = 0; 00033 00034 /* 00035 * lists all available factories 00036 */ 00037 static std::list<Factory *> listFactories (); 00038 }; 00039 00040 }; 00041 00042 #endif /* _SFIDL_FACTORY_H_ */ 00043 00044 /* vim:set ts=8 sts=2 sw=2: */