+Driver::Options::Options(const string &optstr)
+{
+ vector<string> parts = split(optstr, ':');
+ for(vector<string>::const_iterator i=parts.begin(); i!=parts.end(); ++i)
+ {
+ string::size_type equals = i->find('=');
+ if(equals==0)
+ throw invalid_argument("Driver::Options::Options");
+
+ if(equals==string::npos)
+ set(string(), *i);
+ else
+ set(i->substr(0, equals), i->substr(equals+1));
+ }
+}
+
+void Driver::Options::set(const string &key, const string &value)
+{
+ opts[key] = value;