]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/dummy.cpp
Add helper class for processing driver options
[r2c2.git] / source / libr2c2 / dummy.cpp
index cb625dd6bf1f691650b72b8a820e394912f1bbea..cfee07417b3105b75c2eba5a1029f3056ead320a 100644 (file)
@@ -7,22 +7,10 @@ using namespace Msp;
 
 namespace R2C2 {
 
-Dummy::Dummy(const string &params):
-       power(true)
-{
-       vector<string> opts = split(params, ':');
-       for(vector<string>::const_iterator i=opts.begin(); i!=opts.end(); ++i)
-       {
-               string::size_type equals = i->find('=');
-               if(equals!=string::npos)
-               {
-                       string name = i->substr(0, equals);
-                       string value = i->substr(equals+1);
-                       if(name=="turnout_delay")
-                               turnout_delay = lexical_cast<unsigned>(value)*Time::msec;
-               }
-       }
-}
+Dummy::Dummy(const Options &opts):
+       power(true),
+       turnout_delay(opts.get("turnout_delay", 0U)*Time::sec)
+{ }
 
 void Dummy::set_power(bool p)
 {
@@ -42,9 +30,10 @@ unsigned Dummy::get_protocol_speed_steps(const string &) const
        return 0;
 }
 
-void Dummy::add_turnout(unsigned addr, const TrackType &)
+unsigned Dummy::add_turnout(unsigned addr, const TrackType &)
 {
        turnouts[addr];
+       return addr;
 }
 
 void Dummy::set_turnout(unsigned addr, unsigned state)