SatAndLight  2.2.2-hubble
Simulation toolkit for space telescopes
Options.h
Go to the documentation of this file.
1 // Author : florent robinet (IJCLab - Orsay): florent.robinet@ijclab.in2p3.fr
4 #ifndef __Options__
5 #define __Options__
6 
13 #include "CUtils.h"
14 #include "Error.h"
15 
16 using namespace std;
17 
21 typedef enum _E_OPTIONS_ID{
49 
50 
63 class SnlOpt{
64 
65  public:
66 
73 
81  SnlOpt(const E_OPTIONS_ID aId);
82 
84 
87  virtual ~SnlOpt(void);
88 
94 
97  void Print(void);
98 
100 
103  inline E_OPTIONS_ID GetId(void){ return id; };
104 
106 
111  inline void SetExtraDescription(const string aExtraDescription){
112  extra_description=aExtraDescription;
113  };
114 
116 
122  void SetValue(const string aValue);
123 
125 
129  inline double GetValueD(void){ return dvalue; };
130 
132 
136  inline int GetValueI(void){ return ivalue; };
137 
139 
143  inline unsigned int GetValueUI(void){ return uivalue; };
144 
146 
150  inline unsigned long int GetValueULI(void){ return ulivalue; };
151 
153 
157  inline string GetValueS(void){ return svalue; };
158 
159  private:
160 
163  int ivalue;
164  unsigned int uivalue;
165  unsigned long int ulivalue;
166  double dvalue;
167  string svalue;
168 
169 };
170 
192 class SnlProg{
193 
194  public:
195 
202 
209  SnlProg(const string aName, const string aDescription="", const string aDocPage="");
210 
212 
215  virtual ~SnlProg(void);
216 
222 
238  int Scan(int argc, char* argv[]);
239 
241 
251  void SelectOption(const E_OPTIONS_ID aId,
252  const string aDefaultValue,
253  const bool aRequired=true,
254  const string aExtraDescription="");
255 
257 
260  void PrintUsage(void);
261 
263 
269  inline int GetValueI(const E_OPTIONS_ID aId){ return opt[aId]->GetValueI(); };
270 
272 
278  inline unsigned int GetValueUI(const E_OPTIONS_ID aId){ return opt[aId]->GetValueUI(); };
279 
281 
287  inline unsigned long int GetValueULI(const E_OPTIONS_ID aId){ return opt[aId]->GetValueULI(); };
288 
290 
296  inline double GetValueD(const E_OPTIONS_ID aId){ return opt[aId]->GetValueD(); };
297 
299 
305  inline string GetValueS(const E_OPTIONS_ID aId){ return opt[aId]->GetValueS(); };
306 
308 
321  inline vector<string> GetValueVectorS(const E_OPTIONS_ID aId){ return SplitString(opt[aId]->GetValueS(), ';'); };
322 
324 
337  vector<double> GetValueVector(const E_OPTIONS_ID aId);
338 
339  private:
340 
341  string name;
342  string desc;
343  string doc;
345  bool selected[OPTIONS_ID_N];
346  bool required[OPTIONS_ID_N];
347  bool used[OPTIONS_ID_N];
348 
350 
356  void SaveValue(const string aKeyWord, const string aValue);
357 
359 
370  E_ERROR_CODE CheckOpt(const E_OPTIONS_ID aId);
371 
372 };
373 
374 
375 
376 #endif
377 
378 
vector< string > SplitString(const string aStringToSplit, const char aSeparator)
Splits a string.
Definition: CUtils.cc:39
This module offers C++ utility functions.
This module is used to define SatAndLight error codes.
enum _E_ERROR_CODE E_ERROR_CODE
List of error codes.
_E_OPTIONS_ID
List of option IDs.
Definition: Options.h:21
@ OPTIONS_ID_HALF_OPENING_ANGLE
half opening angle.
Definition: Options.h:46
@ OPTIONS_ID_REDSHIFT
redshift.
Definition: Options.h:44
@ OPTIONS_ID_INTRINSIC_DENSITY
intrinsic column density.
Definition: Options.h:42
@ OPTIONS_ID_TIME_START
time start .
Definition: Options.h:30
@ OPTIONS_ID_ENERGY_DECAY
Energy decay .
Definition: Options.h:39
@ OPTIONS_ID_TIME_DECAY
time decay .
Definition: Options.h:32
@ OPTIONS_ID_CAM_NAME
camera name.
Definition: Options.h:28
@ OPTIONS_ID_TIME_DELTA
time delta .
Definition: Options.h:31
@ OPTIONS_ID_FLUX
flux .
Definition: Options.h:35
@ OPTIONS_ID_OPENING_ANGLE
opening angle.
Definition: Options.h:45
@ OPTIONS_ID_ENERGY_MIN
minimum energies .
Definition: Options.h:37
@ OPTIONS_ID_NAME
name.
Definition: Options.h:27
@ OPTIONS_ID_SRC_NAME
source name.
Definition: Options.h:29
@ OPTIONS_ID_IN_FILE
input file.
Definition: Options.h:23
@ OPTIONS_ID_ENERGY
energy .
Definition: Options.h:36
@ OPTIONS_ID_PHOTON_INDEX
photon index ( ).
Definition: Options.h:41
@ OPTIONS_ID_ENERGIES
list of energies .
Definition: Options.h:40
@ OPTIONS_ID_OUT_FILE
output file.
Definition: Options.h:25
@ OPTIONS_ID_OUT_DIR
output directory.
Definition: Options.h:26
@ OPTIONS_ID_GALACTIC_DENSITY
galactic column density.
Definition: Options.h:43
@ OPTIONS_ID_IN_FILES
input files (file pattern).
Definition: Options.h:24
@ OPTIONS_ID_N
number of option names.
Definition: Options.h:47
@ OPTIONS_ID_THRESHOLD
threshold.
Definition: Options.h:34
@ OPTIONS_ID_NONE
none.
Definition: Options.h:22
@ OPTIONS_ID_ENERGY_MAX
maximum energies .
Definition: Options.h:38
@ OPTIONS_ID_N_PIX
number of pictures.
Definition: Options.h:33
enum _E_OPTIONS_ID E_OPTIONS_ID
List of option IDs.
Manage a SNL command line option.
Definition: Options.h:63
double dvalue
double value.
Definition: Options.h:166
int ivalue
integer value.
Definition: Options.h:163
void SetExtraDescription(const string aExtraDescription)
Sets the option extra description attribute.
Definition: Options.h:111
double GetValueD(void)
Returns the option value attribute (double).
Definition: Options.h:129
int GetValueI(void)
Returns the option value attribute (integer).
Definition: Options.h:136
string GetValueS(void)
Returns the option value attribute (string).
Definition: Options.h:157
unsigned int uivalue
unsigned 32b integer value.
Definition: Options.h:164
string extra_description
Extra description message.
Definition: Options.h:162
unsigned int GetValueUI(void)
Returns the option value attribute (32-bit unsigned integer).
Definition: Options.h:143
E_OPTIONS_ID GetId(void)
Returns option ID.
Definition: Options.h:103
E_OPTIONS_ID id
ID.
Definition: Options.h:157
unsigned long int ulivalue
unsigned 64b integer value.
Definition: Options.h:165
string svalue
string value.
Definition: Options.h:167
unsigned long int GetValueULI(void)
Returns the option value attribute (64-bit unsigned integer).
Definition: Options.h:150
Parse user options from the command line.
Definition: Options.h:192
string name
Program name.
Definition: Options.h:341
double GetValueD(const E_OPTIONS_ID aId)
Returns option value (double).
Definition: Options.h:296
string doc
Link to documentation page.
Definition: Options.h:343
unsigned int GetValueUI(const E_OPTIONS_ID aId)
Returns option value (unsigned 32b integer).
Definition: Options.h:278
vector< string > GetValueVectorS(const E_OPTIONS_ID aId)
Returns the option value as a vector of sub-strings.
Definition: Options.h:321
unsigned long int GetValueULI(const E_OPTIONS_ID aId)
Returns option value (unsigned 64b integer).
Definition: Options.h:287
int GetValueI(const E_OPTIONS_ID aId)
Returns option value (integer).
Definition: Options.h:269
string desc
Program description.
Definition: Options.h:342
string GetValueS(const E_OPTIONS_ID aId)
Returns option value (string).
Definition: Options.h:305