]> git.mxchange.org Git - flightgear.git/commitdiff
Thomas Foerster:
authordurk <durk>
Wed, 4 Jul 2007 17:42:20 +0000 (17:42 +0000)
committerdurk <durk>
Wed, 4 Jul 2007 17:42:20 +0000 (17:42 +0000)
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 [new file with mode: 0644]
src/Airports/runwayprefloader.hxx [new file with mode: 0644]

diff --git a/src/Airports/dynamicloader.hxx b/src/Airports/dynamicloader.hxx
new file mode 100644 (file)
index 0000000..95f05aa
--- /dev/null
@@ -0,0 +1,26 @@
+#ifndef _DYNAMIC_LOADER_HXX_
+#define _DYNAMIC_LOADER_HXX_
+
+#include <simgear/xml/easyxml.hxx>
+
+#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 (file)
index 0000000..9ee489b
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef _RUNWAY_PREF_LOADER_HXX_
+#define _RUNWAY_PREF_LOADER_HXX_
+
+#include <time.h>
+#include <string>
+
+#include <simgear/compiler.h>
+#include <simgear/xml/easyxml.hxx>
+
+#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