BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sfidl-factory.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef _SFIDL_FACTORY_H_
3 #define _SFIDL_FACTORY_H_
4 
5 #include "sfidl-utils.hh"
6 
7 namespace Sfidl {
8 
9 class Options;
10 class Parser;
11 class CodeGenerator;
12 
13 class Factory {
14 protected:
15  Factory();
16  virtual ~Factory();
17 
18 public:
19  /*
20  * creation routine - should create a code generator
21  */
22  virtual CodeGenerator *create (const Parser& parser) const = 0;
23 
24  /*
25  * returns the command line option (e.g. --plugin)
26  */
27  virtual String option () const = 0;
28 
29  /*
30  * returns the full description
31  */
32  virtual String description () const = 0;
33 
34  /*
35  * lists all available factories
36  */
37  static std::list<Factory *> listFactories ();
38 };
39 
40 };
41 
42 #endif /* _SFIDL_FACTORY_H_ */
43 
44 /* vim:set ts=8 sts=2 sw=2: */
Definition: sfidl-generator.hh:16
Definition: sfidl-factory.hh:13
Definition: sfidl-parser.hh:231
std::string String