X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fblock.h;fp=source%2Flibr2c2%2Fblock.h;h=f71ee29b63f6871ccc2a419e9638a02a22dc54e2;hb=59bae8acd679127602cf35d22bcd37e316a5a056;hp=23fb3c789c6c77a0c0768b7d52dd9c140b678e82;hpb=5c1ddd2f213af3fea15237e02f7da112c0abba36;p=r2c2.git diff --git a/source/libr2c2/block.h b/source/libr2c2/block.h index 23fb3c7..f71ee29 100644 --- a/source/libr2c2/block.h +++ b/source/libr2c2/block.h @@ -9,20 +9,13 @@ namespace R2C2 { class Layout; class Route; +class TrackCircuit; class TrackIter; class Train; -class Block: public sigc::trackable +class Block { public: - enum State - { - INACTIVE, - MAYBE_INACTIVE, - MAYBE_ACTIVE, - ACTIVE - }; - struct Endpoint { Track *track; @@ -36,15 +29,13 @@ public: }; sigc::signal signal_reserved; - sigc::signal signal_state_changed; private: Layout &layout; unsigned id; unsigned sensor_id; unsigned turnout_id; - State state; - Msp::Time::TimeDelta state_confirm_timeout; + TrackCircuit *sensor; std::set tracks; std::vector endpoints; Train *train; @@ -56,7 +47,7 @@ public: unsigned get_id() const { return id; } unsigned get_sensor_id() const { return sensor_id; } unsigned get_turnout_id() const { return turnout_id; } - State get_state() const { return state; } + TrackCircuit &get_sensor() const { return *sensor; } const std::set &get_tracks() const { return tracks; } bool has_track(Track &) const; const std::vector &get_endpoints() const { return endpoints; } @@ -68,11 +59,9 @@ public: Block *get_link(unsigned) const; bool reserve(Train *); Train *get_train() const { return train; } - void tick(const Msp::Time::TimeDelta &); private: void find_paths(const TrackIter &, unsigned); void determine_id(); - void sensor_event(unsigned, bool); }; } // namespace R2C2