AirSched Logo  0.1.4
C++ Simulated Airline Schedule Manager Library
ReachableUniverseKey.hpp
Go to the documentation of this file.
00001 #ifndef __AIRSCHED_BOM_REACHABLEUNIVERSEKEY_HPP
00002 #define __AIRSCHED_BOM_REACHABLEUNIVERSEKEY_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // STL
00008 #include <iosfwd>
00009 #include <string>
00010 // StdAir
00011 #include <stdair/stdair_basic_types.hpp>
00012 #include <stdair/bom/KeyAbstract.hpp>
00013 
00015 namespace boost {
00016   namespace serialization {
00017     class access;
00018   }
00019 }
00020 
00021 namespace AIRSCHED {
00022 
00033   struct ReachableUniverseKey : public stdair::KeyAbstract {
00034     friend class boost::serialization::access;
00035 
00036     // /////////// Constructors and destructors ///////////
00037   private:
00041     ReachableUniverseKey();
00042     
00043   public:
00047     ReachableUniverseKey (const stdair::AirportCode_T& iOrigin);
00048 
00052     ReachableUniverseKey (const ReachableUniverseKey&);
00053 
00057     ~ReachableUniverseKey();
00058 
00059 
00060   public:
00061     // /////////// Getters //////////
00066     const stdair::AirportCode_T& getBoardingPoint() const {
00067       return _origin;
00068     }
00069 
00070 
00071   public:
00072     // /////////// Display support methods /////////
00078     void toStream (std::ostream& ioOut) const;
00079 
00085     void fromStream (std::istream& ioIn);
00086 
00096     const std::string toString() const;
00097 
00098 
00099   public:
00100     // /////////// (Boost) Serialisation support methods /////////
00104     template<class Archive>
00105     void serialize (Archive& ar, const unsigned int iFileVersion);
00106 
00107   private:
00112     void serialisationImplementationExport() const;
00113     void serialisationImplementationImport();
00114 
00115 
00116   private:
00117     // ///////////////// Attributes ///////////////
00122     stdair::AirportCode_T _origin;
00123   };
00124 
00125 }
00126 
00127 #endif // __AIRSCHED_BOM_REACHABLEUNIVERSEKEY_HPP