3 This file is part of the MSP Märklin suite
4 Copyright © 2010 Mikkosoft Productions, Mikko Rasa
5 Distributed under the GPL
8 #ifndef LIBMARKLIN_TRACKITER_H_
9 #define LIBMARKLIN_TRACKITER_H_
12 #include <msp/core/refptr.h>
19 An iterator for traversing tracks.
29 TrackIter(Track *, unsigned);
31 Track *track() const { return _track; }
32 unsigned entry() const { return _entry; }
35 int get_exit(unsigned) const;
37 TrackIter next() const;
38 TrackIter next(unsigned) const;
39 TrackIter reverse() const;
40 TrackIter reverse(unsigned) const;
41 TrackIter flip() const;
43 Track &operator*() const;
44 Track *operator->() const { return _track; }
45 bool operator==(const TrackIter &) const;
46 operator bool() const { return _track!=0; }
49 } // namespace Marklin