X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FTraffic%2FTrafficMgr.hxx;h=15a3467c8ef6df9ec223e9f68f1a11881f2e1356;hb=070dba29f9390806457206c2660f2daebd3d847c;hp=bc27058041b61de1f1561b85158b7471bb4963af;hpb=1e5bd162e78d6e6878c492284e83cc4cb522614e;p=flightgear.git diff --git a/src/Traffic/TrafficMgr.hxx b/src/Traffic/TrafficMgr.hxx index bc2705804..15a3467c8 100644 --- a/src/Traffic/TrafficMgr.hxx +++ b/src/Traffic/TrafficMgr.hxx @@ -51,17 +51,11 @@ #include #include -#include #include -#include #include "SchedFlight.hxx" #include "Schedule.hxx" - -typedef std::vector IdList; -typedef std::vector::iterator IdListIterator; - class Heuristic { public: @@ -81,34 +75,23 @@ typedef HeuristicMap::iterator HeuristicMapIterator; class ScheduleParseThread; -class FGTrafficManager : public SGSubsystem, public XMLVisitor +class FGTrafficManager : public SGSubsystem { private: bool inited; bool doingInit; + bool trafficSyncRequested; + + double waitingMetarTime; + std::string waitingMetarStation; ScheduleVector scheduledAircraft; ScheduleVectorIterator currAircraft, currAircraftClosest; - vector elementValueStack; - - // record model paths which are missing, to avoid duplicate - // warnings when parsing traffic schedules. - std::set missingModels; - - std::string mdl, livery, registration, callsign, fltrules, - port, timeString, departurePort, departureTime, arrivalPort, arrivalTime, - repeat, acType, airline, m_class, flighttype, requiredAircraft, homePort; - int cruiseAlt; - int score, runCount, acCounter; - double radius, offset; - bool heavy; - - IdList releaseList; FGScheduledFlightMap flights; void readTimeTableFromFile(SGPath infilename); - void Tokenize(const string& str, vector& tokens, const string& delimiters = " "); + void Tokenize(const std::string& str, std::vector& tokens, const std::string& delimiters = " "); simgear::PropertyObject enabled, aiEnabled, realWxEnabled, metarValid; @@ -122,31 +105,20 @@ private: // helper to read and parse the schedule data. // this is run on a helper thread, so be careful about - // accesing properties during parsing + // accessing properties during parsing void parseSchedule(const SGPath& path); + bool metarReady(double dt); + public: FGTrafficManager(); ~FGTrafficManager(); void init(); void update(double time); - void release(int ref); - bool isReleased(int id); - FGScheduledFlightVecIterator getFirstFlight(const string &ref) { return flights[ref].begin(); } - FGScheduledFlightVecIterator getLastFlight(const string &ref) { return flights[ref].end(); } + FGScheduledFlightVecIterator getFirstFlight(const std::string &ref) { return flights[ref].begin(); } + FGScheduledFlightVecIterator getLastFlight(const std::string &ref) { return flights[ref].end(); } - void endAircraft(); - - // 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); }; #endif