OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
SDDSColumn.h
Go to the documentation of this file.
1 #ifndef SDDSWRITERCOLUMN_H
2 #define SDDSWRITERCOLUMN_H
3 
4 #include <boost/variant.hpp>
5 
6 #include <ostream>
7 #include <tuple>
8 #include <string>
9 
10 class SDDSColumn {
11 public:
12  SDDSColumn(const std::string& name,
13  const std::string& type,
14  const std::string& unit,
15  const std::string& desc,
16  std::ios_base::fmtflags flags,
17  unsigned short precision);
18 
19  template<typename T>
20  void addValue(const T& val);
21 
22  void writeHeader(std::ostream& os,
23  unsigned int colNr,
24  const std::string& indent) const;
25 
26 protected:
27 
28  void writeValue(std::ostream& os) const;
29 
30 private:
31  friend
32  std::ostream& operator<<(std::ostream& os,
33  const SDDSColumn& col);
34 
35  typedef std::tuple<std::string,
36  std::string,
37  std::string> desc_t;
38 
39  typedef boost::variant<float,
40  double,
41  long unsigned int,
42  char,
43  std::string> variant_t;
44  std::string name_m;
47 
48  std::ios_base::fmtflags writeFlags_m;
49  unsigned short writePrecision_m;
50 
51  mutable bool set_m;
52 };
53 
54 
55 template<typename T>
56 void SDDSColumn::addValue(const T& val) {
57  value_m = val;
58  set_m = true;
59 }
60 
61 
62 std::ostream& operator<<(std::ostream& os,
63  const SDDSColumn& col);
64 
65 #endif
std::ostream & operator<<(std::ostream &os, const Attribute &attr)
Definition: Attribute.cpp:167
unsigned short writePrecision_m
Definition: SDDSColumn.h:49
void writeHeader(std::ostream &os, unsigned int colNr, const std::string &indent) const
Definition: SDDSColumn.cpp:20
Definition: rbendmap.h:8
std::ios_base::fmtflags writeFlags_m
Definition: SDDSColumn.h:48
SDDSColumn(const std::string &name, const std::string &type, const std::string &unit, const std::string &desc, std::ios_base::fmtflags flags, unsigned short precision)
Definition: SDDSColumn.cpp:6
friend std::ostream & operator<<(std::ostream &os, const SDDSColumn &col)
Definition: SDDSColumn.cpp:47
void writeValue(std::ostream &os) const
Definition: SDDSColumn.cpp:35
std::tuple< std::string, std::string, std::string > desc_t
Definition: SDDSColumn.h:37
void addValue(const T &val)
Definition: SDDSColumn.h:56
desc_t description_m
Definition: SDDSColumn.h:45
boost::variant< float, double, long unsigned int, char, std::string > variant_t
Definition: SDDSColumn.h:43
std::string name_m
Definition: SDDSColumn.h:44
const std::string name
variant_t value_m
Definition: SDDSColumn.h:46
bool set_m
Definition: SDDSColumn.h:51