cxcparamx  1.1.0
 All Classes Functions Pages
simple.h
1 // -*-c++-*-
2 
3 #ifndef CXCPARAMX_SIMPLE_H
4 #define CXCPARAMX_SIMPLE_H
5 
6 #include <memory>
7 #include <string>
8 
9 #include <Exception/Exception.h>
10 
11 namespace cxcparamx {
12 
13  class simple {
14 
15  public:
16 
17  simple( int argc, char** argv, const char* mode = "rw" );
18  simple( const char* filename, int argc, char** argv, const char* mode = "rw" );
19  simple( const std::string& filename, int argc, char** argv, const char*mode = "rw" );
20  ~simple();
21 
22  void get( const char* name, float& value );
23  void get( const char* name, double& value );
24  void get( const char* name, short& value );
25  void get( const char* name, int& value );
26  void get( const char* name, long& value );
27  void get( const char* name, bool& value );
28  void get( const char* name, std::string& value );
29 
30  float getf( const char* name );
31  double getd( const char* name );
32  short gets( const char* name );
33  int geti( const char* name );
34  long getl( const char* name );
35  bool getb( const char* name );
36  std::string getstr( const char* name );
37 
38  private:
39 
40  simple( simple& );
41  simple& operator=( simple& );
42 
43  struct ParamFile;
44 
45  typedef std::auto_ptr<ParamFile> pParamFile;
46 
47  void _init_parfile( const char* filename, int argc, char** argv, const char* mode );
48  pParamFile parfile;
49 
50  std::string filename;
51  };
52 
53 }
54 
55 #endif // ! CXCPARAMX_SIMPLE_H