#endif
#include <simgear/compiler.h>
+#include <simgear/sg_inlines.h>
-#include STL_STRING
+#include <string>
#include <vector>
+#include <memory> // for std::auto_ptr
#include "gnnode.hxx"
-SG_USING_STD(string);
-SG_USING_STD(vector);
-
class FGTaxiRoute;
-class FGParking : public FGTaxiNode {
+class FGParking : public FGTaxiNode
+{
private:
double heading;
double radius;
- string parkingName;
- string type;
- string airlineCodes;
+ std::string parkingName;
+ std::string type;
+ std::string airlineCodes;
bool available;
int pushBackPoint;
- FGTaxiRoute *pushBackRoute;
+ std::auto_ptr<FGTaxiRoute> pushBackRoute;
+ SG_DISABLE_COPY(FGParking);
public:
- FGParking() :
- heading(0),
- radius(0),
- available(true),
- pushBackPoint(0),
- pushBackRoute(0)
- {
- };
-
- FGParking(const FGParking &other) :
- FGTaxiNode (other),
- heading (other.heading),
- radius (other.radius),
- parkingName (other.parkingName),
- type (other.type),
- airlineCodes (other.airlineCodes),
- available (other.available),
- pushBackPoint(other.pushBackPoint),
- pushBackRoute(other.pushBackRoute)
- {
- };
-
-
- FGParking& operator =(const FGParking &other)
- {
- FGTaxiNode::operator=(other);
- heading = other.heading;
- radius = other.radius;
- parkingName = other.parkingName;
- type = other.type;
- airlineCodes = other.airlineCodes;
- available = other.available;
- pushBackPoint= other.pushBackPoint;
- pushBackRoute= other.pushBackRoute;
- return *this;
- };
- ~FGParking();
-// FGParking(double lat,
-// double lon,
-// double hdg,
-// double rad,
-// int idx,
-// const string& name,
-// const string& tpe,
-// const string& codes);
+ FGParking(PositionedID aGuid, int index, const SGGeod& pos,
+ double heading, double radius,
+ const std::string& name, const std::string& type,
+ const std::string& codes);
+ virtual ~FGParking();
void setHeading (double hdg) { heading = hdg; };
void setRadius (double rad) { radius = rad; };
- void setName (const string& name) { parkingName = name; };
- void setType (const string& tpe) { type = tpe; };
- void setCodes (const string& codes){ airlineCodes= codes;};
+ void setName (const std::string& name) { parkingName = name; };
+ void setType (const std::string& tpe) { type = tpe; };
+ void setCodes (const std::string& codes){ airlineCodes= codes;};
- void setPushBackRoute(FGTaxiRoute *val) { pushBackRoute = val; };
+ void setPushBackRoute(std::auto_ptr<FGTaxiRoute> val) { pushBackRoute = val; };
void setPushBackPoint(int val) { pushBackPoint = val; };
- bool isAvailable () { return available;};
+ bool isAvailable () const { return available;};
void setAvailable(bool val) { available = val; };
- double getHeading () { return heading; };
- double getRadius () { return radius; };
+ double getHeading () const { return heading; };
+ double getRadius () const { return radius; };
- string getType () { return type; };
- string getCodes () { return airlineCodes;};
- string getName () { return parkingName; };
+ std::string getType () const { return type; };
+ std::string getCodes () const { return airlineCodes;};
+ std::string getName () const { return parkingName; };
- FGTaxiRoute * getPushBackRoute () { return pushBackRoute; };
+ FGTaxiRoute * getPushBackRoute () { return pushBackRoute.get(); };
int getPushBackPoint () { return pushBackPoint; };
return radius < other.radius; };
};
-typedef vector<FGParking> FGParkingVec;
-typedef vector<FGParking>::iterator FGParkingVecIterator;
-typedef vector<FGParking>::const_iterator FGParkingVecConstIterator;
+typedef std::vector<FGParking*> FGParkingVec;
+typedef FGParkingVec::iterator FGParkingVecIterator;
+typedef FGParkingVec::const_iterator FGParkingVecConstIterator;
#endif