StdAir Logo  1.00.7
C++ Standard Airline IT Object Library
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 
18 namespace 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 
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangeBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangeProductOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangeProductOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
SnapshotBlock_T _priceOrientedGrossBookingSnapshotBlock
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
SnapshotBlock_T::array_view< 2 >::type SegmentCabinDTDRangeSnapshotView_T
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangePriceOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDPriceOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
Key of a given guillotine block, made of a guillotine number.
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangePriceOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_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
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDCancellationSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
SnapshotBlock_T::const_array_view< 1 >::type ConstSegmentCabinDTDSnapshotView_T
SnapshotBlock_T _priceOrientedNetBookingSnapshotBlock
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDPriceOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangeBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T) const
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDProductOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
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
const int DEFAULT_MAX_DTD
Definition: BasConst.cpp:505
std::map< const MapKey_T, ClassIndex_T > ClassIndexMap_T
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangeProductOrientedGrossBookingSnapshotView(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)
const SegmentDataID_T & getSegmentDataID(const SegmentCabin &) const
Class representing the actual attributes for an airline segment-cabin.
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangeCancellationSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T) const
const TableID_T DEFAULT_TABLE_ID
unsigned short ClassIndex_T
void serialize(Archive &ar, const unsigned int iFileVersion)
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDPriceOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
SnapshotBlock_T::const_array_view< 2 >::type ConstSegmentCabinDTDRangeSnapshotView_T
Handle on the StdAir library context.
std::map< const SegmentCabin *, SegmentDataID_T > SegmentCabinIndexMap_T
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDProductOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
SegmentCabinIndexMap_T _segmentCabinIndexMap
SnapshotBlock_T::index_range SnapshotBlockRange_T
SnapshotBlock_T _productOrientedGrossBookingSnapshotBlock
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDPriceOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
const ClassIndex_T & getClassIndex(const MapKey_T &) const
void initSnapshotBlocks(const SegmentCabinIndexMap_T &, const ClassIndexMap_T &)
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDCancellationSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
SnapshotBlock_T::array_view< 1 >::type SegmentCabinDTDSnapshotView_T
unsigned short SegmentDataID_T
ConstSegmentCabinDTDRangeSnapshotView_T getConstSegmentCabinDTDRangeProductOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T) const
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDProductOrientedGrossBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
std::string MapKey_T
Definition: key_types.hpp:15
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDAvailabilitySnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangePriceOrientedNetBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
SegmentCabinDTDRangeSnapshotView_T getSegmentCabinDTDRangeAvailabilitySnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T, const DTD_T)
SnapshotBlock_T _productOrientedNetBookingSnapshotBlock
SegmentCabinDTDSnapshotView_T getSegmentCabinDTDAvailabilitySnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T)
ConstSegmentCabinDTDSnapshotView_T getConstSegmentCabinDTDBookingSnapshotView(const SegmentDataID_T, const SegmentDataID_T, const DTD_T) const