QOptions.hh

Go to the documentation of this file.
00001 
00008 #ifndef _Q_OPTIONS_H_
00009 #define _Q_OPTIONS_H_
00010 
00011 #include <string>
00012 #include <map>
00013 #include <fstream>
00014 
00015 #include "QCuore.hh"
00016 #include "QVdt.hh"
00017 
00018 class QOptions {
00019     
00020         public:
00021                 static QOptions& GetInstance();
00022 
00023                 void Init(int argc, char * const argv[]);
00024 
00025                 void Dump(std::ostream&);
00026 
00027                 virtual ~QOptions() {}
00028 
00029         std::string GetName() const {return "QOptions";}
00030 
00031         private:
00032                 QOptions();
00033 
00034                 void Help(const char* exe);
00035                 
00036         std::map<std::string,QVdt*> GetModuleParameters(const std::string& seq, const std::string& mod, size_t occ);
00037 
00038     public:
00039                 const QVdt&  GetParameter(const std::string& seq, const std::string& mod, size_t occ, const std::string& par);
00040             const QVdt&  GetParameter(const std::string& n);
00041 
00042                 double GetDouble(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
00043                 double GetDouble(const std::string&);
00044 
00045                 int GetInt(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
00046                 int GetInt(const std::string&);
00047 
00048                 bool GetBool(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
00049                 bool GetBool(const std::string&);
00050 
00051                 const std::string& GetString(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
00052                 const std::string& GetString(const std::string&);
00053         
00054     private:
00055                 void SetParameter(const std::string& n, const QVdt& value);
00056 
00057                 void SetParameter(const std::string& seq, const std::string& mod, size_t occ, const std::string& par, const QVdt& p);
00058 
00059         void SetFirstSequence(const std::string& n) { fFirstSequenceName = n; } 
00060         void SetLastSequence(const std::string& n) { fLastSequenceName = n; } 
00061 
00062 
00064                 void ReplaceUserParams();
00065 
00066                 std::map< std::string, QVdt > fUserParams;
00067                 std::map< std::string, QVdt > fParams;
00068         std::string fFirstSequenceName;
00069         std::string fLastSequenceName;
00070 
00071                 friend class QBaseModule;
00072                 friend class QModuleFactory;
00073                 friend class QMessageHandler;
00074                 friend class QSequence;
00075         friend class QDriver;
00076                 
00077 };
00078 
00079 #endif

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