19#ifndef OPAL_SDDS_WRITER_H
20#define OPAL_SDDS_WRITER_H
33#include <boost/filesystem.hpp>
41 typedef std::pair<std::string, std::string>
desc_t;
44 typedef std::tuple<std::string, std::string, std::string>
param_t;
47 typedef std::pair<std::string, size_t>
data_t;
50 typedef std::tuple<std::string, std::string, std::string, std::string>
cols_t;
52 SDDSWriter(
const std::string& fname,
bool restart);
70 void addDescription(
const std::string& text,
const std::string& content);
74 const std::string& name,
const std::string& type,
const std::string& desc,
const T& value);
79 const std::string& name,
const std::string& type,
const std::string& unit,
80 const std::string& desc);
82 void addInfo(
const std::string& mode,
const size_t& no_row_counts);
139 return boost::filesystem::exists(
fname_m);
143 desc_m = std::make_pair(text, content);
148 const std::string& name,
const std::string& type,
const std::string& desc,
const T& value) {
149 params_m.push(std::make_tuple(name, type, desc));
150 std::stringstream ss;
156 info_m = std::make_pair(mode, no_row_counts);
165 std::ostringstream ss;
PartBunch< PLayout_t< double, 3 >, double, 3 > PartBunch_t
void replaceVersionString()
SDDSWriter(const std::string &fname, bool restart)
std::tuple< std::string, std::string, std::string, std::string > cols_t
void rewindLines(size_t numberOfLines)
delete the last 'numberOfLines' lines of the file 'fileName'
std::string toString(const T &val)
static constexpr unsigned int precision_m
double getLastValue(const std::string &column)
void addDefaultParameters()
void addDescription(const std::string &text, const std::string &content)
std::queue< std::string > paramValues_m
void writeHeader()
Write SDDS header.
std::ios_base::openmode mode_m
First write to the statistics output file.
std::tuple< std::string, std::string, std::string > param_t
virtual void write(const PartBunch_t *)
void addInfo(const std::string &mode, const size_t &no_row_counts)
std::queue< param_t > params_m
std::pair< std::string, size_t > data_t
void addParameter(const std::string &name, const std::string &type, const std::string &desc, const T &value)
std::pair< std::string, std::string > desc_t
void addColumn(const std::string &name, const std::string &type, const std::string &unit, const std::string &desc)