QModuleFactory.hh
Go to the documentation of this file.00001
00029 #ifndef _Q_MODULE_FACTORY_H_
00030 #define _Q_MODULE_FACTORY_H_
00031
00032 #include <list>
00033 #include <string>
00034 #include <ostream>
00035 #include <iostream>
00036 #include <ctype.h>
00037
00038 #include "QNamed.hh"
00039 #include "QCuore.hh"
00040
00041 class QSequence;
00042 class QBaseModule;
00043 class QReader;
00044 class QWriter;
00045 class QFilter;
00046 class QDriver;
00047 class QModule;
00048
00049 class QModuleFactory : public QNamed {
00050 public:
00051
00052
00053 static QModuleFactory *Get();
00054
00055 virtual ~QModuleFactory();
00056
00057 void Init();
00058
00059 void Dump(std::ostream&);
00060
00061 std::list< QSequence* > &GetSequences() { return sequences;}
00062
00063 private:
00064 QSequence* FindSequence(const std::string& s);
00065
00066 static QModuleFactory *me;
00067
00068
00069 QModuleFactory();
00070
00071 QModule* CreateModule(const std::string& n, QSequence *);
00072 QWriter* CreateWriter(const std::string& n, QSequence *);
00073 QReader* CreateReader(const std::string& n, QSequence *);
00074 QFilter* CreateFilter(const std::string& n, QSequence *);
00075 QDriver* CreateDriver(const std::string& n, QSequence *);
00076 void LoadLoadable(const std::string& n);
00077 std::string ReplaceCFGVar(const std::string& value);
00078
00079
00080 std::list< QSequence* > sequences;
00081
00082
00083 bool init_done;
00084 };
00085
00086 #endif