1 #ifndef DATA_H
2 #define DATA_H
3 
4 #include <QList>
5 #include <QMap>
6 #include <QString>
7 #include <QStringList>
8 #include "waypoint.h"
9 #include "track.h"
10 #include "route.h"
11 #include "parser.h"
12 
13 
14 class Data
15 {
16 public:
17 	Data(const QString &fileName);
18 
isValid()19 	bool isValid() const {return _valid;}
errorString()20 	const QString &errorString() const {return _errorString;}
errorLine()21 	int errorLine() const {return _errorLine;}
22 
tracks()23 	const QList<Track> &tracks() const {return _tracks;}
routes()24 	const QList<Route> &routes() const {return _routes;}
waypoints()25 	const QVector<Waypoint> &waypoints() const {return _waypoints;}
areas()26 	const QList<Area> &areas() const {return _polygons;}
27 
28 	static QString formats();
29 	static QStringList filter();
30 
31 private:
32 	void processData(QList<TrackData> &trackData, QList<RouteData> &routeData);
33 
34 	bool _valid;
35 	QString _errorString;
36 	int _errorLine;
37 
38 	QList<Track> _tracks;
39 	QList<Route> _routes;
40 	QList<Area> _polygons;
41 	QVector<Waypoint> _waypoints;
42 
43 	static QMap<QString, Parser*> _parsers;
44 };
45 
46 #endif // DATA_H
47