1 /* -*- Mode: C++ -*- *****************************************************
3 * Written by Durk Talsma. Started May 5, 2004
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.
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.
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., 675 Mass Ave, Cambridge, MA 02139, USA.
20 **************************************************************************/
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
38 **************************************************************************/
40 #ifndef _FGSCHEDFLIGHT_HXX_
41 #define _FGSCHEDFLIGHT_HXX_
49 class FGScheduledFlight
54 FGAirport departurePort;
55 FGAirport arrivalPort;
62 void initializeAirports();
66 FGScheduledFlight(const FGScheduledFlight &other);
67 // FGScheduledFlight(const string);
68 FGScheduledFlight::FGScheduledFlight(string cs,
81 void adjustTime(time_t now);
83 time_t getDepartureTime() { return departureTime; };
84 time_t getArrivalTime () { return arrivalTime; };
86 FGAirport *getDepartureAirport();
87 FGAirport *getArrivalAirport ();
89 int getCruiseAlt() { return cruiseAltitude; };
91 bool operator<(const FGScheduledFlight &other) const
93 return (departureTime < other.departureTime);
96 time_t processTimeString(string time);
100 typedef vector<FGScheduledFlight> FGScheduledFlightVec;
101 typedef vector<FGScheduledFlight>::iterator FGScheduledFlightVecIterator;