1.01.17
C++ Simulated Airline Travel Solution Provider (TSP) Library
Toggle main menu visibility
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
17
#include <
airtsp/bom/SegmentPathPeriodKey.hpp
>
18
19
namespace
AIRTSP
{
20
21
// ////////////////////////////////////////////////////////////////////
22
SegmentPathPeriodKey::SegmentPathPeriodKey
()
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
// ////////////////////////////////////////////////////////////////////
30
SegmentPathPeriodKey::SegmentPathPeriodKey
(
const
SegmentPathPeriodKey
& iSPPK)
31
: _period (iSPPK._period),
32
_boardingTime (iSPPK._boardingTime),
33
_elapsed (iSPPK._elapsed),
34
_boardingDateOffsetList (iSPPK._boardingDateOffsetList),
35
_nbOfAirlines (iSPPK._nbOfAirlines) {
36
}
37
38
// ////////////////////////////////////////////////////////////////////
39
SegmentPathPeriodKey::
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
// ////////////////////////////////////////////////////////////////////
53
SegmentPathPeriodKey::~SegmentPathPeriodKey
() {
54
}
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
114
void
SegmentPathPeriodKey::serialize<ba::text_oarchive>
(ba::text_oarchive&,
115
unsigned
int
);
116
template
117
void
SegmentPathPeriodKey::serialize<ba::text_iarchive>
(ba::text_iarchive&,
118
unsigned
int
);
119
// ////////////////////////////////////////////////////////////////////
120
121
}
SegmentPathPeriodKey.hpp
AIRTSP
Definition
AIRTSP_Service.hpp:23
AIRTSP::DateOffsetList_T
std::vector< stdair::DateOffset_T > DateOffsetList_T
Definition
SegmentPathPeriodTypes.hpp:35
stdair
Forward declarations.
Definition
AIRTSP_Service.hpp:14
AIRTSP::SegmentPathPeriodKey::serialize
void serialize(Archive &ar, const unsigned int iFileVersion)
Definition
SegmentPathPeriodKey.cpp:98
AIRTSP::SegmentPathPeriodKey::~SegmentPathPeriodKey
~SegmentPathPeriodKey()
Definition
SegmentPathPeriodKey.cpp:53
AIRTSP::SegmentPathPeriodKey::fromStream
void fromStream(std::istream &ioIn)
Definition
SegmentPathPeriodKey.cpp:62
AIRTSP::SegmentPathPeriodKey::SegmentPathPeriodKey
SegmentPathPeriodKey()
Definition
SegmentPathPeriodKey.cpp:22
AIRTSP::SegmentPathPeriodKey::SegmentPathPeriodKey
SegmentPathPeriodKey(const stdair::PeriodStruct &, const stdair::Duration_T &iBoardingTime, const stdair::Duration_T &iElapsed, const DateOffsetList_T &, const stdair::NbOfAirlines_T &)
Definition
SegmentPathPeriodKey.cpp:40
AIRTSP::SegmentPathPeriodKey::toString
const std::string toString() const
Definition
SegmentPathPeriodKey.cpp:66
AIRTSP::SegmentPathPeriodKey::toStream
void toStream(std::ostream &ioOut) const
Definition
SegmentPathPeriodKey.cpp:57
Generated on
for AirTSP by
1.17.0