35 typedef std::string::const_iterator
iterator_t;
36 typedef SDDS::parser::file_parser<iterator_t> file_parser_t;
41 paramNameToID_m.clear();
42 columnNameToID_m.clear();
51 bool success = phrase_parse(contentsIter, contentsEnd, parser, skipper, sddsData_m);
53 SDDS::parameterList::iterator piter = sddsData_m.sddsParameters_m.begin();
54 SDDS::parameterList::iterator pend = sddsData_m.sddsParameters_m.end();
55 for (; piter != pend && success; ++ piter) {
56 success = piter->parse(contentsIter, contentsEnd, skipper);
58 while (success && contentsIter != contentsEnd) {
59 SDDS::columnList::iterator citer = sddsData_m.sddsColumns_m.begin();
60 SDDS::columnList::iterator cend = sddsData_m.sddsColumns_m.end();
61 for (; citer != cend && success; ++ citer) {
62 success = citer->parse(contentsIter, contentsEnd, skipper);
67 if (!success || contentsIter != contentsEnd)
70 "could not parse SDDS file");
73 unsigned int param_order = 0;
75 std::string
name = *param.name_m;
76 fixCaseSensitivity(
name);
77 paramNameToID_m.insert(std::make_pair(
name,
82 unsigned int col_order = 0;
83 for (
const SDDS::column &col: sddsData_m.sddsColumns_m) {
84 std::string
name = *col.name_m;
85 fixCaseSensitivity(
name);
86 columnNameToID_m.insert(std::make_pair(
name,
95 std::ifstream in(sddsFileName_m.c_str());
99 in.seekg(0, std::ios::end);
100 contents.resize(in.tellg());
101 in.seekg(0, std::ios::beg);
103 in.read(&contents[0], contents.size());
111 "could not open file '" + sddsFileName_m +
"'");
113 return std::string(
"");