AirSched Logo  0.1.4
C++ Simulated Airline Schedule Manager Library
ReachableUniverseKey.cpp
Go to the documentation of this file.
00001 // //////////////////////////////////////////////////////////////////////
00002 // Import section
00003 // //////////////////////////////////////////////////////////////////////
00004 // STL
00005 #include <cassert>
00006 #include <sstream>
00007 // Boost.Serialization
00008 #include <boost/archive/text_iarchive.hpp>
00009 #include <boost/archive/text_oarchive.hpp>
00010 #include <boost/serialization/access.hpp>
00011 // StdAir
00012 #include <stdair/basic/BasConst_Inventory.hpp>
00013 // AirSched
00014 #include <airsched/bom/ReachableUniverseKey.hpp>
00015 
00016 namespace AIRSCHED {
00017 
00018   // ////////////////////////////////////////////////////////////////////
00019   ReachableUniverseKey::ReachableUniverseKey()
00020     : _origin (stdair::DEFAULT_ORIGIN) {
00021     assert (false);
00022   }
00023   
00024   // ////////////////////////////////////////////////////////////////////
00025   ReachableUniverseKey::
00026   ReachableUniverseKey (const ReachableUniverseKey& iKey)
00027     : _origin (iKey._origin) {
00028   }
00029 
00030   // ////////////////////////////////////////////////////////////////////
00031   ReachableUniverseKey::
00032   ReachableUniverseKey (const stdair::AirportCode_T& iAirportCode)
00033     : _origin (iAirportCode) {
00034   }
00035 
00036   // ////////////////////////////////////////////////////////////////////
00037   ReachableUniverseKey::~ReachableUniverseKey() {
00038   }
00039 
00040   // ////////////////////////////////////////////////////////////////////
00041   void ReachableUniverseKey::toStream (std::ostream& ioOut) const {
00042     ioOut << "ReachableUniverseKey: " << toString() << std::endl;
00043   }
00044 
00045   // ////////////////////////////////////////////////////////////////////
00046   void ReachableUniverseKey::fromStream (std::istream& ioIn) {
00047   }
00048 
00049   // ////////////////////////////////////////////////////////////////////
00050   const std::string ReachableUniverseKey::toString() const {
00051     std::ostringstream oStr;
00052     oStr << _origin;
00053     return oStr.str();
00054   }
00055   
00056   // ////////////////////////////////////////////////////////////////////
00057   void ReachableUniverseKey::serialisationImplementationExport() const {
00058     std::ostringstream oStr;
00059     boost::archive::text_oarchive oa (oStr);
00060     oa << *this;
00061   }
00062 
00063   // ////////////////////////////////////////////////////////////////////
00064   void ReachableUniverseKey::serialisationImplementationImport() {
00065     std::istringstream iStr;
00066     boost::archive::text_iarchive ia (iStr);
00067     ia >> *this;
00068   }
00069 
00070   // ////////////////////////////////////////////////////////////////////
00071   template<class Archive>
00072   void ReachableUniverseKey::serialize (Archive& ioArchive,
00073                                         const unsigned int iFileVersion) {
00078     ioArchive & _origin;
00079   }
00080 
00081   // ////////////////////////////////////////////////////////////////////
00082   // Explicit template instantiation
00083   namespace ba = boost::archive;
00084   template
00085   void ReachableUniverseKey::serialize<ba::text_oarchive> (ba::text_oarchive&,
00086                                                            unsigned int);
00087   template
00088   void ReachableUniverseKey::serialize<ba::text_iarchive> (ba::text_iarchive&,
00089                                                            unsigned int);
00090   // ////////////////////////////////////////////////////////////////////
00091   
00092 }