1 #ifndef OPAL_SDDS_WRITER_H
2 #define OPAL_SDDS_WRITER_H
15 #include <boost/filesystem.hpp>
16 #include <boost/variant.hpp>
21 template <
class T,
unsigned Dim>
28 typedef std::pair<std::string, std::string>
desc_t;
31 typedef std::tuple<std::string,
36 typedef std::pair<std::string, size_t>
data_t;
39 typedef std::tuple<std::string,
45 SDDSWriter(
const std::string& fname,
bool restart);
65 const std::string& content);
69 const std::string&
type,
70 const std::string& desc,
76 const std::string&
type,
77 const std::string& unit,
78 const std::string& desc);
80 void addInfo(
const std::string& mode,
81 const size_t& no_row_counts);
142 return boost::filesystem::exists(
fname_m);
148 const std::string& content)
150 desc_m = std::make_pair(text, content);
156 const std::string&
type,
157 const std::string& desc,
160 params_m.push(std::make_tuple(name, type, desc));
161 std::stringstream ss;
169 const size_t& no_row_counts) {
170 info_m = std::make_pair(mode, no_row_counts);
182 std::ostringstream ss;
void writeRow(std::ostream &os) const
std::tuple< std::string, std::string, std::string > param_t
void writeHeader()
Write SDDS header.
static constexpr unsigned int precision_m
void rewindLines(size_t numberOfLines)
delete the last 'numberOfLines' lines of the file 'fileName'
std::queue< param_t > params_m
double getLastValue(const std::string &column)
SDDSWriter(const std::string &fname, bool restart)
void addDescription(const std::string &text, const std::string &content)
void addParameter(const std::string &name, const std::string &type, const std::string &desc, const T &value)
void addColumn(const std::string &name, const std::string &type, const std::string &unit, const std::string &desc)
std::ios_base::openmode mode_m
First write to the statistics output file.
std::tuple< std::string, std::string, std::string, std::string > cols_t
std::string toString(const T &val)
void addDefaultParameters()
virtual void write(PartBunchBase< double, 3 > *beam)
std::queue< std::string > paramValues_m
std::pair< std::string, std::string > desc_t
void replaceVersionString()
std::pair< std::string, size_t > data_t
void addInfo(const std::string &mode, const size_t &no_row_counts)