bool active;
BlockList blocks;
BlockList::iterator cur_blocks_end;
+ Sensor *next_sensor;
Block *pending_block;
const Block *stop_at_block;
bool reserving;
void set_active(bool);
bool is_active() const { return active; }
- void start_from(const BlockIter &);
+ bool start_from(const BlockIter &);
void rewind_to(const Block &);
void clear();
bool empty() const { return blocks.empty(); }
private:
void reserve_more();
bool reserve_block(const BlockIter &);
+ void advance_front(const Block *, bool);
+ void advance_front(const Sensor *);
+ void advance_back();
void release_blocks_begin(const BlockList::iterator &);
void release_blocks_end(const BlockList::iterator &);
void release_block(const BlockList::iterator &);
void turnout_path_changed(Track &);
void block_reserved(Block &, const Train *);
void sensor_state_changed(Sensor &, Sensor::State);
+ void update_next_sensor(Sensor *);
public:
void save(std::list<Msp::DataFile::Statement> &) const;