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         // singleton
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     // singleton
00066         static QModuleFactory *me;
00067   
00068     // private ctor
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         // list of sequences
00080         std::list< QSequence* > sequences;
00081 
00082         // status
00083         bool init_done;
00084 };
00085 
00086 #endif

Generated on Tue Nov 16 10:49:56 2010 for CUORE Software by  doxygen 1.5.6