19 #include <basic/Tracer.hh>
20 #include <utility/io/izstream.hh>
21 #include <utility/exit.hh>
25 #include <boost/tokenizer.hpp>
26 #include <boost/lexical_cast.hpp>
28 #include <utility/vector1.hh>
32 namespace frag_picker {
36 "protocols.frag_picker.quota.ABEGO_SS_Config");
40 utility::io::izstream data(file_name.c_str());
41 trABEGO_SS_Config.Info <<
"reading SS-ABEGO quota config from " << file_name << std::endl;
43 utility_exit_with_message(
"[ERROR] Unable to open quota config file: "
46 typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
47 boost::char_separator<char> sep(
", :");
50 if(line.length() < 4)
continue;
51 if(line[0]==
'#')
continue;
52 tokenizer tokens(line, sep);
54 for (tokenizer::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter)
55 t.push_back(*tok_iter);
56 trABEGO_SS_Config.Trace <<
"Parsing a line: "<<line<<
"\n\t("<<t.size()<<
" tokens)"<<std::endl;
57 if(line.find(
':')!=line.npos) {
63 trABEGO_SS_Config.Trace <<
"a new pool defined: >"<<pool_name<<
"<";
64 for(
Size i=3;i<=t.size();i+=2) {
66 trABEGO_SS_Config.Trace <<
" "<<bins[bins.size()].first<<
" : "<<bins[bins.size()].second;
68 trABEGO_SS_Config.Trace << std::endl;
73 for(
Size i=5;i<=t.size();i++)
74 row.push_back( boost::lexical_cast<double>(t[i]) );