StdAir Logo  1.00.13
C++ Standard Airline IT Object Library
Loading...
Searching...
No Matches
SegmentSnapshotTable.cpp
Go to the documentation of this file.
1// //////////////////////////////////////////////////////////////////////
2// Import section
3// //////////////////////////////////////////////////////////////////////
4// STL
5#include <cassert>
6#include <sstream>
7// Boost
8#include <boost/multi_array.hpp>
9// Boost.Serialization
10#include <boost/archive/text_iarchive.hpp>
11#include <boost/archive/text_oarchive.hpp>
12#include <boost/serialization/access.hpp>
13// StdAir
17
18namespace stdair {
19
20 // ////////////////////////////////////////////////////////////////////
21 SegmentSnapshotTable::SegmentSnapshotTable()
22 : _key (DEFAULT_TABLE_ID), _parent (NULL) {
23 assert (false);
24 }
25
26 // ////////////////////////////////////////////////////////////////////
27 SegmentSnapshotTable::SegmentSnapshotTable (const SegmentSnapshotTable&)
28 : _key (DEFAULT_TABLE_ID), _parent (NULL) {
29 assert (false);
30 }
31
32 // ////////////////////////////////////////////////////////////////////
33 SegmentSnapshotTable::
34 SegmentSnapshotTable (const Key_T& iKey) : _key (iKey), _parent (NULL) {
35 }
36
37 // ////////////////////////////////////////////////////////////////////
39 }
40
41 // ////////////////////////////////////////////////////////////////////
42 std::string SegmentSnapshotTable::toString() const {
43 std::ostringstream oStr;
44 oStr << describeKey();
45 return oStr.str();
46 }
47
48 // ////////////////////////////////////////////////////////////////////
50 initSnapshotBlocks (const SegmentCabinIndexMap_T& iSegmentCabinIndexMap,
51 const ClassIndexMap_T& iClassIndexMap) {
52 _segmentCabinIndexMap = iSegmentCabinIndexMap;
53 _classIndexMap.clear();
54 _classIndexMap.insert (iClassIndexMap.begin(), iClassIndexMap.end());
55
56 unsigned int lNumberOfSegmentCabins = _segmentCabinIndexMap.size();
57 unsigned int lNumberOfClasses = _classIndexMap.size();
58
59 // Initialise the snapshot blocks
60 // Normally, the block includes snapshots from DTD MAX to DTD 0, thus
61 // DEFAULT_MAX_DTD + 1 values. However, we would like to add the day
62 // before DTD MAX (this value will be initialised to zero).
64 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
65 [DEFAULT_MAX_DTD + 2]);
67 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
68 [DEFAULT_MAX_DTD + 2]);
70 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
71 [DEFAULT_MAX_DTD + 2]);
73 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
74 [DEFAULT_MAX_DTD + 2]);
76 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
77 [DEFAULT_MAX_DTD + 2]);
79 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
80 [DEFAULT_MAX_DTD + 2]);
82 resize (boost::extents[lNumberOfSegmentCabins*lNumberOfClasses]
83 [DEFAULT_MAX_DTD + 2]);
84
85 }
86
87 // ////////////////////////////////////////////////////////////////////
89 getClassIndex (const MapKey_T& iKey) const {
90 ClassIndexMap_T::const_iterator itVTIdx =
91 _classIndexMap.find (iKey);
92 assert (itVTIdx != _classIndexMap.end());
93 return itVTIdx->second;
94 }
95
96 // ////////////////////////////////////////////////////////////////////
98 getSegmentDataID (const SegmentCabin& iSegmentCabin) const {
99 SegmentCabinIndexMap_T::const_iterator itSCIdx =
100 _segmentCabinIndexMap.find (&iSegmentCabin);
101 assert (itSCIdx != _segmentCabinIndexMap.end());
102 return itSCIdx->second;
103 }
104
105 // ////////////////////////////////////////////////////////////////////
108 const SegmentDataID_T iSCIdxEnd,
109 const DTD_T iDTD) const {
110 const unsigned int lNbOfClasses = _classIndexMap.size();
111 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
112 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
113
114 return _bookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
115 }
116
117 // ////////////////////////////////////////////////////////////////////
120 (const SegmentDataID_T iSCIdxBegin, const SegmentDataID_T iSCIdxEnd,
121 const DTD_T iDTDBegin, const DTD_T iDTDEnd) const {
122 const unsigned int lNbOfClasses = _classIndexMap.size();
123 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
124 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
125
126 return _bookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
127 }
128
129 // ////////////////////////////////////////////////////////////////////
132 const SegmentDataID_T iSCIdxEnd,
133 const DTD_T iDTD) {
134 const unsigned int lNbOfClasses = _classIndexMap.size();
135 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
136 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
137
138 return _bookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
139 }
140
141 // ////////////////////////////////////////////////////////////////////
144 const SegmentDataID_T iSCIdxEnd,
145 const DTD_T iDTDBegin,
146 const DTD_T iDTDEnd) {
147 const unsigned int lNbOfClasses = _classIndexMap.size();
148 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
149 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
150
151 return _bookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
152 }
153
154 // ////////////////////////////////////////////////////////////////////
157 const SegmentDataID_T iSCIdxEnd,
158 const DTD_T iDTD) const {
159 const unsigned int lNbOfClasses = _classIndexMap.size();
160 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
161 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
162
163 return _cancellationSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
164 }
165
166 // ////////////////////////////////////////////////////////////////////
169 (const SegmentDataID_T iSCIdxBegin, const SegmentDataID_T iSCIdxEnd,
170 const DTD_T iDTDBegin, const DTD_T iDTDEnd) const {
171 const unsigned int lNbOfClasses = _classIndexMap.size();
172 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
173 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
174
175 return _cancellationSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
176 }
177
178 // ////////////////////////////////////////////////////////////////////
181 const SegmentDataID_T iSCIdxEnd,
182 const DTD_T iDTD) {
183 const unsigned int lNbOfClasses = _classIndexMap.size();
184 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
185 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
186
187 return _cancellationSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
188 }
189
190 // ////////////////////////////////////////////////////////////////////
193 const SegmentDataID_T iSCIdxEnd,
194 const DTD_T iDTDBegin,
195 const DTD_T iDTDEnd) {
196 const unsigned int lNbOfClasses = _classIndexMap.size();
197 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
198 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
199
200 return _cancellationSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
201 }
202
203 // ////////////////////////////////////////////////////////////////////
206 const SegmentDataID_T iSCIdxEnd,
207 const DTD_T iDTD) const {
208 const unsigned int lNbOfClasses = _classIndexMap.size();
209 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
210 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
211
212 return _productOrientedNetBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
213 }
214
215 // ////////////////////////////////////////////////////////////////////
218 (const SegmentDataID_T iSCIdxBegin, const SegmentDataID_T iSCIdxEnd,
219 const DTD_T iDTDBegin, const DTD_T iDTDEnd) const {
220 const unsigned int lNbOfClasses = _classIndexMap.size();
221 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
222 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
223
224 return _productOrientedNetBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
225 }
226
227 // ////////////////////////////////////////////////////////////////////
230 const SegmentDataID_T iSCIdxEnd,
231 const DTD_T iDTD) {
232 const unsigned int lNbOfClasses = _classIndexMap.size();
233 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
234 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
235
236 return _productOrientedNetBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
237 }
238
239 // ////////////////////////////////////////////////////////////////////
242 const SegmentDataID_T iSCIdxEnd,
243 const DTD_T iDTDBegin,
244 const DTD_T iDTDEnd) {
245 const unsigned int lNbOfClasses = _classIndexMap.size();
246 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
247 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
248
249 return _productOrientedNetBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
250 }
251
252
253 // ////////////////////////////////////////////////////////////////////
256 const SegmentDataID_T iSCIdxEnd,
257 const DTD_T iDTD) const {
258 const unsigned int lNbOfClasses = _classIndexMap.size();
259 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
260 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
261
262 return _priceOrientedNetBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
263 }
264
265 // ////////////////////////////////////////////////////////////////////
268 (const SegmentDataID_T iSCIdxBegin, const SegmentDataID_T iSCIdxEnd,
269 const DTD_T iDTDBegin, const DTD_T iDTDEnd) const {
270 const unsigned int lNbOfClasses = _classIndexMap.size();
271 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
272 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
273
274 return _priceOrientedNetBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
275 }
276
277 // ////////////////////////////////////////////////////////////////////
280 const SegmentDataID_T iSCIdxEnd,
281 const DTD_T iDTD) {
282 const unsigned int lNbOfClasses = _classIndexMap.size();
283 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
284 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
285
286 return _priceOrientedNetBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
287 }
288
289 // ////////////////////////////////////////////////////////////////////
292 const SegmentDataID_T iSCIdxEnd,
293 const DTD_T iDTDBegin,
294 const DTD_T iDTDEnd) {
295 const unsigned int lNbOfClasses = _classIndexMap.size();
296 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
297 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
298
299 return _priceOrientedNetBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
300 }
301
302 // ////////////////////////////////////////////////////////////////////
305 const SegmentDataID_T iSCIdxEnd,
306 const DTD_T iDTD) const {
307 const unsigned int lNbOfClasses = _classIndexMap.size();
308 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
309 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
310
311 return _productOrientedGrossBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
312 }
313
314 // ////////////////////////////////////////////////////////////////////
317 (const SegmentDataID_T iSCIdxBegin, const SegmentDataID_T iSCIdxEnd,
318 const DTD_T iDTDBegin, const DTD_T iDTDEnd) const {
319 const unsigned int lNbOfClasses = _classIndexMap.size();
320 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
321 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
322
323 return _productOrientedGrossBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
324 }
325
326 // ////////////////////////////////////////////////////////////////////
329 const SegmentDataID_T iSCIdxEnd,
330 const DTD_T iDTD) {
331 const unsigned int lNbOfClasses = _classIndexMap.size();
332 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
333 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
334
335 return _productOrientedGrossBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
336 }
337
338 // ////////////////////////////////////////////////////////////////////
341 const SegmentDataID_T iSCIdxEnd,
342 const DTD_T iDTDBegin,
343 const DTD_T iDTDEnd) {
344 const unsigned int lNbOfClasses = _classIndexMap.size();
345 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
346 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
347
348 return _productOrientedGrossBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
349 }
350
351
352 // ////////////////////////////////////////////////////////////////////
355 const SegmentDataID_T iSCIdxEnd,
356 const DTD_T iDTD) const {
357 const unsigned int lNbOfClasses = _classIndexMap.size();
358 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
359 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
360
361 return _priceOrientedGrossBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
362 }
363
364 // ////////////////////////////////////////////////////////////////////
367 (const SegmentDataID_T iSCIdxBegin, const SegmentDataID_T iSCIdxEnd,
368 const DTD_T iDTDBegin, const DTD_T iDTDEnd) const {
369 const unsigned int lNbOfClasses = _classIndexMap.size();
370 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
371 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
372
373 return _priceOrientedGrossBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
374 }
375
376 // ////////////////////////////////////////////////////////////////////
379 (const SegmentDataID_T iSCIdxBegin, const SegmentDataID_T iSCIdxEnd,
380 const DTD_T iDTD) {
381 const unsigned int lNbOfClasses = _classIndexMap.size();
382 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
383 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
384
385 return _priceOrientedGrossBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
386 }
387
388 // ////////////////////////////////////////////////////////////////////
391 (const SegmentDataID_T iSCIdxBegin, const SegmentDataID_T iSCIdxEnd,
392 const DTD_T iDTDBegin, const DTD_T iDTDEnd) {
393 const unsigned int lNbOfClasses = _classIndexMap.size();
394 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
395 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
396
397 return _priceOrientedGrossBookingSnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
398 }
399
400 // ////////////////////////////////////////////////////////////////////
403 (const SegmentDataID_T iSCIdxBegin, const SegmentDataID_T iSCIdxEnd,
404 const DTD_T iDTD) const {
405 const unsigned int lNbOfClasses = _classIndexMap.size();
406 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
407 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
408
409 return _availabilitySnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
410 }
411
412 // ////////////////////////////////////////////////////////////////////
415 (const SegmentDataID_T iSCIdxBegin, const SegmentDataID_T iSCIdxEnd,
416 const DTD_T iDTDBegin, const DTD_T iDTDEnd) const {
417 const unsigned int lNbOfClasses = _classIndexMap.size();
418 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
419 const unsigned int lClassIdxEnd = (iSCIdxEnd +1) * lNbOfClasses;
420
421 return _availabilitySnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
422 }
423
424 // ////////////////////////////////////////////////////////////////////
427 const SegmentDataID_T iSCIdxEnd,
428 const DTD_T iDTD) {
429 const unsigned int lNbOfClasses = _classIndexMap.size();
430 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
431 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
432
433 return _availabilitySnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][iDTD] ];
434 }
435
436 // ////////////////////////////////////////////////////////////////////
439 const SegmentDataID_T iSCIdxEnd,
440 const DTD_T iDTDBegin,
441 const DTD_T iDTDEnd) {
442 const unsigned int lNbOfClasses = _classIndexMap.size();
443 const unsigned int lClassIdxBegin = iSCIdxBegin * lNbOfClasses;
444 const unsigned int lClassIdxEnd = (iSCIdxEnd + 1) * lNbOfClasses;
445
446 return _availabilitySnapshotBlock [ boost::indices[SnapshotBlockRange_T(lClassIdxBegin, lClassIdxEnd)][SnapshotBlockRange_T(iDTDBegin, iDTDEnd + 1)] ];
447 }
448
449 // ////////////////////////////////////////////////////////////////////
450 void SegmentSnapshotTable::serialisationImplementationExport() const {
451 std::ostringstream oStr;
452 boost::archive::text_oarchive oa (oStr);
453 oa << *this;
454 }
455
456 // ////////////////////////////////////////////////////////////////////
457 void SegmentSnapshotTable::serialisationImplementationImport() {
458 std::istringstream iStr;
459 boost::archive::text_iarchive ia (iStr);
460 ia >> *this;
461 }
462
463 // ////////////////////////////////////////////////////////////////////
464 template<class Archive>
465 void SegmentSnapshotTable::serialize (Archive& ioArchive,
466 const unsigned int iFileVersion) {
467 ioArchive & _key;
468 }
469
470}
471
Handle on the StdAir library context.
SnapshotBlock_T::const_array_view< 2 >::type ConstSegmentCabinDTDRangeSnapshotView_T
unsigned short SegmentDataID_T
std::string MapKey_T
Definition key_types.hpp:15
std::map< const MapKey_T, ClassIndex_T > ClassIndexMap_T
SnapshotBlock_T::array_view< 1 >::type SegmentCabinDTDSnapshotView_T
const int DEFAULT_MAX_DTD
Definition BasConst.cpp:505
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
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)
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDProductOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
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
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
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangePriceOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
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.