BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
paramFile.h
Go to the documentation of this file.
1 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_FORMAT_PARAMFILE_H
6 #define BALL_FORMAT_PARAMFILE_H
7 
8 #ifndef BALL_SYSTEM_FILE_H
9 # include <BALL/SYSTEM/file.h>
10 #endif
11 
12 #ifndef BALL_DATATYPE_STRING_H
13 # include <BALL/DATATYPE/string.h>
14 #endif
15 
16 #include <QtXml/QXmlStreamReader>
17 #include <QtXml/QXmlStreamWriter>
18 #include <QtCore/QFile>
19 
20 #include <map>
21 #include <list>
22 
23 
24 namespace BALL
25 {
26  enum BALL_EXPORT ParameterType
27  {
29  OUTFILE,
30  STRING,
31  INT,
32  DOUBLE,
33  INFILELIST,
35  STRINGLIST,
36  INTLIST,
37  DOUBLELIST
38  };
39 
41  {
42  // constructor
44  {
45  name = "";
46  description = "";
47  category = "";
48  mandatory = false;
49  advanced = false;
50  type = INFILE;
51  output_format_source = "";
52  allowed_values.clear();
53  supported_formats.clear();
54  hidden = false;
55  };
56 
57  String name;
60  bool mandatory;
61  bool advanced;
62  ParameterType type;
63 
67 
69  list<String> allowed_values;
70 
73  list<String> supported_formats;
74 
75  // if parameters shall be hidden in galaxy
76  bool hidden;
77  };
78 
80  class BALL_EXPORT ParamFile : public File
81  {
82  public:
83 
84  ParamFile(const String& name, File::OpenMode open_mode);
85  ~ParamFile();
86 
93  void writeSection(String section_name, String section_description, String version, const String& section_helptext,
94  const String& category, const std::list<std::pair<String,ParameterDescription> >& descriptions,
95  const std::map<String,list<String> >& values);
96 
101  void readSection(String& section_name, String& section_description, String& version, String& section_helptext,
102  String& category, std::list<std::pair<String, ParameterDescription> >& descriptions,
103  std::map<String,list<String> >& values,
104  bool overwrite_existing=false);
105 
106  void close();
107 
108 
109  protected:
110 
114  QXmlStreamReader* xmlIn_;
115  QXmlStreamWriter* xmlOut_;
116  QFile* file_;
117  };
118 }
119 
120 #endif
INT
Definition: paramFile.h:28
QXmlStreamReader * xmlIn_
Definition: paramFile.h:114
File::OpenMode open_mode_
Definition: paramFile.h:112
list< String > allowed_values
Definition: paramFile.h:69
INFILELIST
Definition: paramFile.h:28
list< String > supported_formats
Definition: paramFile.h:73
DOUBLE
Definition: paramFile.h:28
std::ios::openmode OpenMode
Definition: file.h:168
INFILE
Definition: paramFile.h:28
String filename_
Definition: paramFile.h:111
STRING
Definition: paramFile.h:28
OUTFILE
Definition: paramFile.h:28
STRINGLIST
Definition: paramFile.h:28
OUTFILELIST
Definition: paramFile.h:28
INTLIST
Definition: paramFile.h:28
QFile * file_
Definition: paramFile.h:116
#define BALL_EXPORT
Definition: COMMON/global.h:50
QXmlStreamWriter * xmlOut_
Definition: paramFile.h:115