AirTSP Logo  1.01.12
C++ Simulated Airline Travel Solution Provider (TSP) Library
Loading...
Searching...
No Matches
SegmentPathPeriodKey.cpp
Go to the documentation of this file.
1// //////////////////////////////////////////////////////////////////////
2// Import section
3// //////////////////////////////////////////////////////////////////////
4// STL
5#include <cassert>
6#include <sstream>
7// Boost.Serialization
8#include <boost/archive/text_iarchive.hpp>
9#include <boost/archive/text_oarchive.hpp>
10#include <boost/serialization/access.hpp>
11// StdAir
12#include <stdair/basic/BasConst_General.hpp>
13#include <stdair/basic/BasConst_Inventory.hpp>
14#include <stdair/basic/BasConst_Period_BOM.hpp>
15#include <stdair/basic/BasConst_TravelSolution.hpp>
16// AirTSP
18
19namespace AIRTSP {
20
21 // ////////////////////////////////////////////////////////////////////
23 : _period (stdair::BOOST_DEFAULT_DATE_PERIOD, stdair::DEFAULT_DOW_STRING),
24 _boardingTime (stdair::NULL_BOOST_TIME_DURATION),
25 _elapsed (stdair::NULL_BOOST_TIME_DURATION),
26 _nbOfAirlines (stdair::DEFAULT_NBOFAIRLINES) {
27 }
28
29 // ////////////////////////////////////////////////////////////////////
31 : _period (iSPPK._period),
32 _boardingTime (iSPPK._boardingTime),
33 _elapsed (iSPPK._elapsed),
34 _boardingDateOffsetList (iSPPK._boardingDateOffsetList),
35 _nbOfAirlines (iSPPK._nbOfAirlines) {
36 }
37
38 // ////////////////////////////////////////////////////////////////////
40 SegmentPathPeriodKey (const stdair::PeriodStruct& iPeriod,
41 const stdair::Duration_T& iBoardingTime,
42 const stdair::Duration_T& iElapsedTime,
43 const DateOffsetList_T& iBoardingDateOffsetList,
44 const stdair::NbOfAirlines_T& iNbOfAirlines)
45 : _period (iPeriod),
46 _boardingTime (iBoardingTime),
47 _elapsed (iElapsedTime),
48 _boardingDateOffsetList (iBoardingDateOffsetList),
49 _nbOfAirlines (iNbOfAirlines) {
50 }
51
52 // ////////////////////////////////////////////////////////////////////
55
56 // ////////////////////////////////////////////////////////////////////
57 void SegmentPathPeriodKey::toStream (std::ostream& ioOut) const {
58 ioOut << "SegmentPathPeriodKey: " << toString() << std::endl;
59 }
60
61 // ////////////////////////////////////////////////////////////////////
62 void SegmentPathPeriodKey::fromStream (std::istream& ioIn) {
63 }
64
65 // ////////////////////////////////////////////////////////////////////
66 const std::string SegmentPathPeriodKey::toString() const {
67 std::ostringstream oStr;
68 oStr << _period.describeShort() << ", "
69 << _boardingTime << ", " << _elapsed << ", ";
70
71 for (DateOffsetList_T::const_iterator itOffset =
72 _boardingDateOffsetList.begin();
73 itOffset != _boardingDateOffsetList.end(); ++itOffset) {
74 const stdair::DateOffset_T& lDateOffset = *itOffset;
75 oStr << lDateOffset.days() << ", ";
76 }
77
78 oStr << _nbOfAirlines ;
79 return oStr.str();
80 }
81
82 // ////////////////////////////////////////////////////////////////////
83 void SegmentPathPeriodKey::serialisationImplementationExport() const {
84 std::ostringstream oStr;
85 boost::archive::text_oarchive oa (oStr);
86 oa << *this;
87 }
88
89 // ////////////////////////////////////////////////////////////////////
90 void SegmentPathPeriodKey::serialisationImplementationImport() {
91 std::istringstream iStr;
92 boost::archive::text_iarchive ia (iStr);
93 ia >> *this;
94 }
95
96 // ////////////////////////////////////////////////////////////////////
97 template<class Archive>
98 void SegmentPathPeriodKey::serialize (Archive& ioArchive,
99 const unsigned int iFileVersion) {
104 //ioArchive & _period & _boardingTime & _elapsed & _nbOfAirlines;
105 std::string lBTStr = boost::posix_time::to_simple_string (_boardingTime);
106 std::string lElapsedStr = boost::posix_time::to_simple_string (_elapsed);
107 ioArchive & lBTStr & lElapsedStr & _nbOfAirlines;
108 }
109
110 // ////////////////////////////////////////////////////////////////////
111 // Explicit template instantiation
112 namespace ba = boost::archive;
113 template
115 unsigned int);
116 template
118 unsigned int);
119 // ////////////////////////////////////////////////////////////////////
120
121}
std::vector< stdair::DateOffset_T > DateOffsetList_T
Forward declarations.
void serialize(Archive &ar, const unsigned int iFileVersion)
void fromStream(std::istream &ioIn)
SegmentPathPeriodKey(const stdair::PeriodStruct &, const stdair::Duration_T &iBoardingTime, const stdair::Duration_T &iElapsed, const DateOffsetList_T &, const stdair::NbOfAirlines_T &)
const std::string toString() const
void toStream(std::ostream &ioOut) const