#ifndef _RUNWAYPREFS_HXX_
#define _RUNWAYPREFS_HXX_
-#include <simgear/xml/easyxml.hxx>
+#include <time.h>
+#include <vector>
+#include <string>
+
+#include <simgear/compiler.h>
+
+using std::vector;
+using std::string;
typedef vector<time_t> timeVec;
typedef vector<time_t>::const_iterator timeVecConstIterator;
typedef vector<string>::iterator stringVecIterator;
typedef vector<string>::const_iterator stringVecConstIterator;
+class FGAirport;
/***************************************************************************/
class ScheduleTime {
void setName(const string& nm) { name = nm; };
void add(const RunwayList& list) { rwyList.push_back(list);};
- void setActive(const string& aptId, double windSpeed, double windHeading, double maxTail, double maxCross, stringVec *curr);
+ void setActive(const FGAirport* airport, double windSpeed, double windHeading, double maxTail, double maxCross, stringVec *curr);
int getNrActiveRunways() { return nrActive;};
void getActive(int i, string& name, string& type);
/******************************************************************************/
-class FGRunwayPreference : public XMLVisitor {
+class FGRunwayPreference {
private:
- string value;
- string scheduleName;
+ FGAirport* _ap;
ScheduleTime comTimes; // Commercial Traffic;
ScheduleTime genTimes; // General Aviation;
ScheduleTime milTimes; // Military Traffic;
- ScheduleTime currTimes; // Needed for parsing;
+ ScheduleTime ulTimes; // Ultralight Traffic
- RunwayList rwyList;
- RunwayGroup rwyGroup;
PreferenceList preferences;
-
- time_t processTime(const string&);
bool initialized;
public:
- FGRunwayPreference();
+ FGRunwayPreference(FGAirport* ap);
FGRunwayPreference(const FGRunwayPreference &other);
FGRunwayPreference & operator= (const FGRunwayPreference &other);
+
ScheduleTime *getSchedule(const char *trafficType);
RunwayGroup *getGroup(const string& groupName);
+
+ string getId();
+
bool available() { return initialized; };
+ void setInitialized(bool state) { initialized = state; };
+
+ void setMilTimes(ScheduleTime& t) { milTimes = t; };
+ void setGenTimes(ScheduleTime& t) { genTimes = t; };
+ void setComTimes(ScheduleTime& t) { comTimes = t; };
+ void setULTimes (ScheduleTime& t) { ulTimes = t; };
- // Some overloaded virtual XMLVisitor members
- virtual void startXML ();
- virtual void endXML ();
- virtual void startElement (const char * name, const XMLAttributes &atts);
- virtual void endElement (const char * name);
- virtual void data (const char * s, int len);
- virtual void pi (const char * target, const char * data);
- virtual void warning (const char * message, int line, int column);
- virtual void error (const char * message, int line, int column);
+ void addRunwayGroup(RunwayGroup& g) { preferences.push_back(g); };
};
#endif