31 paramNameToID_m.clear();
32 columnNameToID_m.clear();
34 std::string contents = readFile();
39 sddsData_m = parser.
parse();
40 }
catch (
const std::exception& e) {
42 "SDDSParser::run", std::string(
"could not parse SDDS file: ") + e.what());
47 for (
auto& param : sddsData_m.sddsParameters_m) {
48 if (!param.parse(contents, pos)) {
52 while (pos < contents.length()
53 && (std::isspace(
static_cast<unsigned char>(contents[pos]))
54 || contents[pos] ==
',')) {
60 while (pos < contents.length()) {
61 bool found_value =
false;
62 for (
auto& col : sddsData_m.sddsColumns_m) {
63 if (col.parse(contents, pos)) {
66 while (pos < contents.length()
67 && (std::isspace(
static_cast<unsigned char>(contents[pos]))
68 || contents[pos] ==
',')) {
78 unsigned int param_order = 0;
80 std::string name = *param.name_m;
81 fixCaseSensitivity(name);
82 paramNameToID_m.insert(std::make_pair(name, param_order));
86 unsigned int col_order = 0;
87 for (
const SDDS::column& col : sddsData_m.sddsColumns_m) {
88 std::string name = *col.name_m;
89 fixCaseSensitivity(name);
90 columnNameToID_m.insert(std::make_pair(name, col_order));
98 std::ifstream in(sddsFileName_m.c_str());
101 std::string contents;
102 in.seekg(0, std::ios::end);
103 contents.resize(in.tellg());
104 in.seekg(0, std::ios::beg);
106 in.read(&contents[0], contents.size());
114 "SDDSParser::readSDDSFile",
"could not open file '" + sddsFileName_m +
"'");
116 return std::string(
"");