]> git.mxchange.org Git - flightgear.git/blob - src/Traffic/SchedFlight.hxx
Remove unused variables
[flightgear.git] / src / Traffic / SchedFlight.hxx
1 /* -*- Mode: C++ -*- *****************************************************
2  * SchedFlight.hxx
3  * Written by Durk Talsma. Started May 5, 2004
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation; either version 2 of the
8  * License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18  *
19  *
20  **************************************************************************/
21
22 /**************************************************************************
23  * ScheduledFlight is a class that is used by FlightGear's Traffic Manager
24  * A scheduled flight can be assigned to a schedule, which can be assigned 
25  * to an aircraft. The traffic manager decides for each schedule which
26  * scheduled flight (if any) is currently active. I no scheduled flights
27  * are found active, it tries to position the aircraft associated with this
28  * schedule at departure airport of the next scheduled flight.
29  * The class ScheduledFlight is a software implimentation of this.
30  * In summary, this class stores arrival and departure information, as well
31  * as some administrative data, such as the callsign of this particular
32  * flight (used in future ATC scenarios), under which flight rules the 
33  * flight is taking place, as well as a requested initial cruise altitude.
34  * Finally, the class contains a repeat period, wich indicates after how
35  * many seconds a flight should repeat in this schedule (which is usually
36  * after either a day or a week). If this value is zero, this flight won't
37  * repeat. 
38  **************************************************************************/
39
40 #ifndef _FGSCHEDFLIGHT_HXX_
41 #define _FGSCHEDFLIGHT_HXX_
42
43
44 using namespace std;
45
46 SG_USING_STD(vector);
47
48
49 class FGScheduledFlight
50 {
51 private:
52   string callsign;
53   string fltRules;
54   FGAirport *departurePort;
55   FGAirport *arrivalPort;
56   string depId;
57   string arrId;
58   time_t departureTime;
59   time_t arrivalTime;
60   time_t repeatPeriod;
61   int cruiseAltitude;
62   bool initialized;
63
64  
65  
66 public:
67   FGScheduledFlight();
68   FGScheduledFlight(const FGScheduledFlight &other);
69   //  FGScheduledFlight(const string);
70   FGScheduledFlight(const string& cs,
71                      const string& fr,
72                      const string& depPrt,
73                      const string& arrPrt,
74                      int cruiseAlt,
75                      const string& deptime,
76                      const string& arrtime,
77                      const string& rep
78                      );
79   ~FGScheduledFlight();
80
81   void update();
82    bool initializeAirports();
83   
84   void adjustTime(time_t now);
85
86   time_t getDepartureTime() { return departureTime; };
87   time_t getArrivalTime  () { return arrivalTime;   };
88   
89   FGAirport *getDepartureAirport();
90   FGAirport *getArrivalAirport  ();
91
92   int getCruiseAlt() { return cruiseAltitude; };
93
94   bool operator<(const FGScheduledFlight &other) const  
95   { 
96     return (departureTime < other.departureTime); 
97   };
98   string& getFlightRules() { return fltRules; };
99
100   time_t processTimeString(const string& time);
101   const string& getCallSign() {return callsign; };
102 };
103
104 typedef vector<FGScheduledFlight*>           FGScheduledFlightVec;
105 typedef vector<FGScheduledFlight*>::iterator FGScheduledFlightVecIterator;
106
107 bool compareScheduledFlights(FGScheduledFlight *a, FGScheduledFlight *b);
108
109
110 #endif