From 33486a03083a80c7eed530a88fa44dcae8cda192 Mon Sep 17 00:00:00 2001 From: durk Date: Wed, 4 Jul 2007 17:42:20 +0000 Subject: [PATCH] Thomas Foerster: I refactored the XML loading code out of FGAirportDynamics and FGRunwayPreference. I also added a new class XMLLoader, which serves as a facade to the loader functions. Further I changed FGRunwayPreference to just keep a FGAirport ref, which is more concise and closer to the right(tm) solution than storing the airport data a second time ;-) --- src/Airports/dynamicloader.hxx | 26 +++++++++++++++++++ src/Airports/runwayprefloader.hxx | 42 +++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 src/Airports/dynamicloader.hxx create mode 100644 src/Airports/runwayprefloader.hxx diff --git a/src/Airports/dynamicloader.hxx b/src/Airports/dynamicloader.hxx new file mode 100644 index 000000000..95f05aa07 --- /dev/null +++ b/src/Airports/dynamicloader.hxx @@ -0,0 +1,26 @@ +#ifndef _DYNAMIC_LOADER_HXX_ +#define _DYNAMIC_LOADER_HXX_ + +#include + +#include "dynamics.hxx" + +class FGAirportDynamicsXMLLoader : public XMLVisitor { +public: + FGAirportDynamicsXMLLoader(FGAirportDynamics* dyn); + +protected: + 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); + +private: + FGAirportDynamics* _dynamics; +}; + +#endif diff --git a/src/Airports/runwayprefloader.hxx b/src/Airports/runwayprefloader.hxx new file mode 100644 index 000000000..9ee489b10 --- /dev/null +++ b/src/Airports/runwayprefloader.hxx @@ -0,0 +1,42 @@ +#ifndef _RUNWAY_PREF_LOADER_HXX_ +#define _RUNWAY_PREF_LOADER_HXX_ + +#include +#include + +#include +#include + +#include "runwayprefs.hxx" + +SG_USING_STD(string); + +class FGRunwayPreferenceXMLLoader : public XMLVisitor { +public: + FGRunwayPreferenceXMLLoader(FGRunwayPreference* p); + +protected: + 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); + + time_t processTime(const string &tme); + +private: + FGRunwayPreference* _pref; + + string value; + + string scheduleName; + ScheduleTime currTimes; // Needed for parsing; + + RunwayList rwyList; + RunwayGroup rwyGroup; +}; + +#endif