X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Flibr2c2%2Fblock.h;h=7d6211b0a5b303b9e85669fb96d72882606c838d;hb=73edcbd8841752a2722fc8b3927fee2abbbba750;hp=f71ee29b63f6871ccc2a419e9638a02a22dc54e2;hpb=59bae8acd679127602cf35d22bcd37e316a5a056;p=r2c2.git diff --git a/source/libr2c2/block.h b/source/libr2c2/block.h index f71ee29..7d6211b 100644 --- a/source/libr2c2/block.h +++ b/source/libr2c2/block.h @@ -4,6 +4,7 @@ #include #include #include "track.h" +#include "trackchain.h" namespace R2C2 { @@ -13,7 +14,7 @@ class TrackCircuit; class TrackIter; class Train; -class Block +class Block: public TrackChain { public: struct Endpoint @@ -31,12 +32,10 @@ public: sigc::signal signal_reserved; private: - Layout &layout; unsigned id; unsigned sensor_id; unsigned turnout_id; TrackCircuit *sensor; - std::set tracks; std::vector endpoints; Train *train; @@ -44,12 +43,14 @@ public: Block(Layout &, Track &); ~Block(); +private: + virtual Validity check_validity(Track &) const; + +public: unsigned get_id() const { return id; } unsigned get_sensor_id() const { return sensor_id; } unsigned get_turnout_id() const { return turnout_id; } 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; } const Endpoint &get_endpoint(unsigned) const; int get_endpoint_by_link(Block &) const;