- for(vector<Row>::const_iterator i=rows.begin(); i!=rows.end(); ++i)
- st.push_back(i->save());
-}
-
-Track &Timetable::get_sensor(unsigned id)
-{
- Block &block = train.get_layout().get_block(id|0x1000);
- return **block.get_tracks().begin();
-}
-
-Zone &Timetable::get_zone(const string &name)
-{
- string::size_type space = name.rfind(' ');
- if(space==string::npos || space==0)
- throw InvalidParameterValue("Invalid zone name");
- unsigned number = lexical_cast<unsigned>(name.substr(space+1));
- return train.get_layout().get_zone(name.substr(0, space), number);
-}
-
-void Timetable::sensor_event(unsigned addr, bool state)
-{
- if(pending_block && pending_block->get_train()==pending_train && addr==pending_block->get_sensor_id() && state)