8#include <boost/multi_array.hpp>
10#include <boost/archive/text_iarchive.hpp>
11#include <boost/archive/text_oarchive.hpp>
12#include <boost/serialization/access.hpp>
21 SegmentSnapshotTable::SegmentSnapshotTable()
27 SegmentSnapshotTable::SegmentSnapshotTable (
const SegmentSnapshotTable&)
33 SegmentSnapshotTable::
34 SegmentSnapshotTable (
const Key_T& iKey) : _key (iKey), _parent (NULL) {
43 std::ostringstream oStr;
54 _classIndexMap.insert (iClassIndexMap.begin(), iClassIndexMap.end());
64 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
67 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
70 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
73 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
76 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
79 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
82 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
90 ClassIndexMap_T::const_iterator itVTIdx =
93 return itVTIdx->second;
99 SegmentCabinIndexMap_T::const_iterator itSCIdx =
102 return itSCIdx->second;
109 const DTD_T iDTD)
const {
111 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
112 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
121 const DTD_T iDTDBegin,
const DTD_T iDTDEnd)
const {
123 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
124 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
135 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
136 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
145 const DTD_T iDTDBegin,
146 const DTD_T iDTDEnd) {
148 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
149 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
158 const DTD_T iDTD)
const {
160 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
161 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
170 const DTD_T iDTDBegin,
const DTD_T iDTDEnd)
const {
172 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
173 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
184 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
185 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
194 const DTD_T iDTDBegin,
195 const DTD_T iDTDEnd) {
197 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
198 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
207 const DTD_T iDTD)
const {
209 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
210 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
219 const DTD_T iDTDBegin,
const DTD_T iDTDEnd)
const {
221 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
222 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
233 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
234 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
243 const DTD_T iDTDBegin,
244 const DTD_T iDTDEnd) {
246 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
247 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
257 const DTD_T iDTD)
const {
259 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
260 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
269 const DTD_T iDTDBegin,
const DTD_T iDTDEnd)
const {
271 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
272 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
283 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
284 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
293 const DTD_T iDTDBegin,
294 const DTD_T iDTDEnd) {
296 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
297 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
306 const DTD_T iDTD)
const {
308 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
309 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
318 const DTD_T iDTDBegin,
const DTD_T iDTDEnd)
const {
320 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
321 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
332 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
333 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
342 const DTD_T iDTDBegin,
343 const DTD_T iDTDEnd) {
345 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
346 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
356 const DTD_T iDTD)
const {
358 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
359 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
368 const DTD_T iDTDBegin,
const DTD_T iDTDEnd)
const {
370 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
371 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
382 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
383 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
394 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
395 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
404 const DTD_T iDTD)
const {
406 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
407 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
416 const DTD_T iDTDBegin,
const DTD_T iDTDEnd)
const {
418 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
419 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
430 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
431 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
440 const DTD_T iDTDBegin,
441 const DTD_T iDTDEnd) {
443 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
444 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
450 void SegmentSnapshotTable::serialisationImplementationExport()
const {
451 std::ostringstream oStr;
452 boost::archive::text_oarchive oa (oStr);
457 void SegmentSnapshotTable::serialisationImplementationImport() {
458 std::istringstream iStr;
459 boost::archive::text_iarchive ia (iStr);
464 template<
class Archive>
466 const unsigned int iFileVersion) {
Handle on the StdAir library context.
SnapshotBlock_T::const_array_view< 2 >::type ConstSegmentCabinDTDRangeSnapshotView_T
unsigned short SegmentDataID_T
std::map< const MapKey_T, ClassIndex_T > ClassIndexMap_T
SnapshotBlock_T::array_view< 1 >::type SegmentCabinDTDSnapshotView_T
const int DEFAULT_MAX_DTD
SnapshotBlock_T::const_array_view< 1 >::type ConstSegmentCabinDTDSnapshotView_T
SnapshotBlock_T::array_view< 2 >::type SegmentCabinDTDRangeSnapshotView_T
unsigned short ClassIndex_T
std::map< const SegmentCabin *, SegmentDataID_T > SegmentCabinIndexMap_T
const TableID_T DEFAULT_TABLE_ID
SnapshotBlock_T::index_range SnapshotBlockRange_T
Class representing the actual attributes for an airline segment-cabin.
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangeBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T) const
SnapshotBlock_T _availabilitySnapshotBlock
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDPriceOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDCancellationSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangeCancellationSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangePriceOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T) const
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangeProductOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
SnapshotBlock_T _cancellationSnapshotBlock
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDProductOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
SnapshotBlock_T _bookingSnapshotBlock
void initSnapshotBlocks(const SegmentCabinIndexMap_T &, const ClassIndexMap_T &)
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDAvailabilitySnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDProductOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
const std::string describeKey() const
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangeAvailabilitySnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T) const
std::string toString() const
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangeBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
void serialize(Archive &ar, const unsigned int iFileVersion)
SegmentCabinIndexMap_T _segmentCabinIndexMap
const ClassIndex_T & getClassIndex(const MapKey_T &) const
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangeProductOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangePriceOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T) const
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDProductOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangePriceOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangeProductOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T) const
SnapshotBlock_T _priceOrientedNetBookingSnapshotBlock
SnapshotBlock_T _priceOrientedGrossBookingSnapshotBlock
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDAvailabilitySnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangeAvailabilitySnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDPriceOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDProductOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDPriceOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangeCancellationSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T) const
SnapshotBlock_T _productOrientedNetBookingSnapshotBlock
ClassIndexMap_T _classIndexMap
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangePriceOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
virtual ~SegmentSnapshotTable()
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDCancellationSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
SnapshotBlock_T _productOrientedGrossBookingSnapshotBlock
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDPriceOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
const SegmentDataID_T & getSegmentDataID(const SegmentCabin &) const
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangeProductOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T) const
Key of a given guillotine block, made of a guillotine number.