void hint(unsigned);
};
+ sigc::signal<void, Block &, Sensor *> signal_advanced;
+ sigc::signal<void, Block &> signal_rear_advanced;
+
private:
struct BlockMatch;
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_to(const Block *);
+ 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 block_reserved(Block &, const Train *);
void sensor_state_changed(Sensor &, Sensor::State);
void update_next_sensor(Sensor *);
+ void halt_event(bool);
public:
void save(std::list<Msp::DataFile::Statement> &) const;