Diana Software
QOptions.hh
Go to the documentation of this file.
1 
8 #ifndef _Q_OPTIONS_H_
9 #define _Q_OPTIONS_H_
10 
11 #include <string>
12 #include <map>
13 #include <fstream>
14 #include <vector>
15 
16 #include "QDiana.hh"
17 #include "QVdt.hh"
18 
20 
21 class QOptions {
22 
23  public:
24  static QOptions& GetInstance();
25 
26  void Init(int argc, char * const argv[]);
27 
28  void Dump(std::ostream&);
29 
30  void CheckNotGet(const std::string& seq, std::ostream& o);
31  void CheckAtDefault(const std::string& seq, std::ostream& o) ;
32 
33  virtual ~QOptions();
34 
35  std::string GetName() const {return "QOptions";}
36 
37  private:
38  QOptions();
39 
40  void Help(const char* exe);
41 
42  std::map<std::string,QVdt*> GetModuleParameters(const std::string& seq, const std::string& mod, size_t occ);
43 
44  public:
45  const QVdt& GetParameter(const std::string& seq, const std::string& mod, size_t occ, const std::string& par);
46  const QVdt& GetParameter(const std::string& n);
47 
48  double GetDouble(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
49  double GetDouble(const std::string&);
50  std::vector<double> GetVectorDouble(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
51  std::vector<double> GetVectorDouble(const std::string&);
52 
53  int GetInt(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
54  int GetInt(const std::string&);
55  std::vector<int> GetVectorInt(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
56  std::vector<int> GetVectorInt(const std::string&);
57 
58  bool GetBool(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
59  bool GetBool(const std::string&);
60  std::vector<bool> GetVectorBool(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
61  std::vector<bool> GetVectorBool(const std::string&);
62 
63  const std::string& GetString(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
64  const std::string& GetString(const std::string&);
65  std::vector<std::string> GetVectorString(const std::string& seq, const std::string& mod,size_t occ, const std::string& par);
66  std::vector<std::string> GetVectorString(const std::string&);
67 
68 
69 
70  private:
71  class ParamInfo {
72  public:
73  ParamInfo() { get = 0;}
75  int get;
76 
77  };
78  void SetParameter(const std::string& n, const QVdt& value, const bool isDefault = false);
79 
80  void SetParameter(const std::string& seq, const std::string& mod, size_t occ, const std::string& par, const QVdt& p, const bool isDefault = false);
81 
82  void SetFirstSequence(const std::string& n) { fFirstSequenceName = n; }
83  void SetLastSequence(const std::string& n) { fLastSequenceName = n; }
84 
85 
87  void ReplaceUserParams();
88 
89 
90 
91 
92  std::map< std::string, QVdt > fUserParams;
93  std::map< std::string, ParamInfo > fParams;
94  std::string fFirstSequenceName;
95  std::string fLastSequenceName;
96 
97  friend class QBaseModule;
98  friend class QModuleFactory;
99  friend class QMessageHandler;
100  friend class QSequence;
101  friend class QDriver;
102 
103 };
104 
106 #endif
#define Q_END_NAMESPACE
Definition: QDiana.hh:22
#define Q_BEGIN_NAMESPACE
Definition: QDiana.hh:20
Base class for modules.
Definition: QBaseModule.hh:57
Base class for diana drivers.
Definition: QDriver.hh:32
module instantiation class
diana options and parameters handler
Definition: QOptions.hh:21
std::vector< bool > GetVectorBool(const std::string &)
void SetParameter(const std::string &seq, const std::string &mod, size_t occ, const std::string &par, const QVdt &p, const bool isDefault=false)
const std::string & GetString(const std::string &seq, const std::string &mod, size_t occ, const std::string &par)
Definition: QOptions.cc:556
double GetDouble(const std::string &seq, const std::string &mod, size_t occ, const std::string &par)
Definition: QOptions.cc:489
std::vector< double > GetVectorDouble(const std::string &seq, const std::string &mod, size_t occ, const std::string &par)
Definition: QOptions.cc:498
void SetLastSequence(const std::string &n)
Definition: QOptions.hh:83
void SetParameter(const std::string &n, const QVdt &value, const bool isDefault=false)
void SetFirstSequence(const std::string &n)
Definition: QOptions.hh:82
const std::string & GetString(const std::string &)
std::map< std::string, ParamInfo > fParams
Definition: QOptions.hh:93
std::string fFirstSequenceName
Definition: QOptions.hh:94
std::vector< std::string > GetVectorString(const std::string &)
void Init(int argc, char *const argv[])
Definition: QOptions.cc:166
bool GetBool(const std::string &)
std::string GetName() const
Definition: QOptions.hh:35
std::map< std::string, QVdt > fUserParams
Definition: QOptions.hh:92
std::string fLastSequenceName
Definition: QOptions.hh:95
std::vector< bool > GetVectorBool(const std::string &seq, const std::string &mod, size_t occ, const std::string &par)
Definition: QOptions.cc:534
virtual ~QOptions()
Definition: QOptions.cc:65
void CheckNotGet(const std::string &seq, std::ostream &o)
Definition: QOptions.cc:69
void Help(const char *exe)
Definition: QOptions.cc:141
const QVdt & GetParameter(const std::string &seq, const std::string &mod, size_t occ, const std::string &par)
Definition: QOptions.cc:472
std::vector< double > GetVectorDouble(const std::string &)
void Dump(std::ostream &)
Definition: QOptions.cc:121
double GetDouble(const std::string &)
std::map< std::string, QVdt * > GetModuleParameters(const std::string &seq, const std::string &mod, size_t occ)
Definition: QOptions.cc:580
std::vector< int > GetVectorInt(const std::string &)
void ReplaceUserParams()
replace parameters that where super-seeded with inline command
Definition: QOptions.cc:368
std::vector< std::string > GetVectorString(const std::string &seq, const std::string &mod, size_t occ, const std::string &par)
Definition: QOptions.cc:544
int GetInt(const std::string &seq, const std::string &mod, size_t occ, const std::string &par)
Definition: QOptions.cc:508
static QOptions & GetInstance()
Definition: QOptions.cc:23
QOptions()
Definition: QOptions.cc:30
int GetInt(const std::string &)
std::vector< int > GetVectorInt(const std::string &seq, const std::string &mod, size_t occ, const std::string &par)
Definition: QOptions.cc:516
bool GetBool(const std::string &seq, const std::string &mod, size_t occ, const std::string &par)
Definition: QOptions.cc:526
void CheckAtDefault(const std::string &seq, std::ostream &o)
Definition: QOptions.cc:95
Diana Reconstruction program.
Definition: QSequence.hh:40
Variable Data Type.
Definition: QVdt.hh:26