StdAir Logo  1.00.8
C++ Standard Airline IT Object Library
SegmentCabin.hpp
Go to the documentation of this file.
1 #ifndef __STDAIR_BOM_SEGMENTCABIN_HPP
2 #define __STDAIR_BOM_SEGMENTCABIN_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <iosfwd>
9 #include <string>
10 // StdAir
16 
18 namespace boost {
19  namespace serialization {
20  class access;
21  }
22  namespace archive {
23  namespace detail {
24  template <class T>
25  struct heap_allocation;
26  }
27  }
28 }
29 
30 namespace stdair {
31  // Forward declarations
32  class SegmentSnapshotTable;
33  class Policy;
34 
39  class SegmentCabin : public BomAbstract {
40  template <typename BOM> friend class FacBom;
41  template <typename BOM> friend class FacCloneBom;
42  friend class FacBomManager;
44  template <class T> friend struct boost::archive::detail::heap_allocation;
45 
46  public:
47  // ////////// Type definitions ////////////
52 
53 
54  public:
55  // /////////// Getters /////////////
59  const Key_T& getKey() const {
60  return _key;
61  }
62 
66  BomAbstract* const getParent() const {
67  return _parent;
68  }
69 
73  const HolderMap_T& getHolderMap() const {
74  return _holderMap;
75  }
76 
80  const CabinCode_T& getCabinCode() const {
81  return _key.getCabinCode();
82  }
83 
92  const MapKey_T getFullerKey() const;
93 
96  assert (_segmentSnapshotTable != NULL);
97  return *_segmentSnapshotTable;
98  }
99 
101  const CabinCapacity_T& getCapacity() const {
102  return _capacity;
103  }
104 
106  const BlockSpace_T& getBlockSpace() const {
107  return _blockSpace;
108  }
109 
111  const BlockSpace_T& getMIN() const {
112  return _min;
113  }
114 
116  const UPR_T& getUPR() const {
117  return _upr;
118  }
119 
122  return _bookingCounter;
123  }
124 
127  return _committedSpace;
128  }
129 
132  return _availabilityPool;
133  }
134 
137  return _currentBidPrice;
138  }
139 
142  return _bidPriceVector;
143  }
144 
146  const bool getFareFamilyStatus() const {
147  return _fareFamilyActivation;
148  }
149 
151  const PolicyList_T& getConvexHull() const {
152  return _convexHull;
153  }
154 
155  public:
156  // ///////// Setters //////////
159  _segmentSnapshotTable = &ioTable;
160  }
161 
163  void setCapacity (const CabinCapacity_T& iCapacity) {
164  _capacity = iCapacity;
165  }
166 
168  void setBlockSpace (const BlockSpace_T& iBlockSpace) {
169  _blockSpace = iBlockSpace;
170  }
171 
173  void setMIN (const BlockSpace_T& iMIN) {
174  _min = iMIN;
175  }
176 
178  void setUPR (const UPR_T& iUPR) {
179  _upr = iUPR;
180  }
181 
183  void setBookingCounter (const NbOfBookings_T& iBookingCounter) {
184  _bookingCounter = iBookingCounter;
185  }
186 
188  void setCommittedSpace (const CommittedSpace_T& iCommittedSpace) {
189  _committedSpace = iCommittedSpace;
190  }
191 
193  void setAvailabilityPool (const Availability_T& iAvailabilityPool) {
194  _availabilityPool = iAvailabilityPool;
195  }
196 
198  void setBidPriceVector (const BidPriceVector_T& iBPV) {
199  _bidPriceVector = iBPV;
200  }
201 
204  _fareFamilyActivation = true;
205  }
206 
207  public:
208  // /////////// Business methods //////////
211 
213  void resetConvexHull () { _convexHull.clear(); }
214 
219  void addPolicy (Policy&);
220 
221  public:
222  // /////////// Display support methods /////////
228  void toStream (std::ostream& ioOut) const {
229  ioOut << toString();
230  }
231 
237  void fromStream (std::istream& ioIn) {
238  }
239 
243  std::string toString() const;
244 
248  const std::string describeKey() const {
249  return _key.toString();
250  }
251 
255  const std::string describeConvexHull() const;
256 
257 
258  public:
259  // /////////// (Boost) Serialisation support methods /////////
263  template<class Archive>
264  void serialize (Archive& ar, const unsigned int iFileVersion);
265 
266  private:
274  void serialisationImplementationExport() const;
275  void serialisationImplementationImport();
276 
277 
278  protected:
279  // ////////// Constructors and destructors /////////
283  SegmentCabin (const Key_T&);
284 
288  virtual ~SegmentCabin();
289 
290  private:
294  SegmentCabin();
295 
299  SegmentCabin (const SegmentCabin&);
300 
301 
302  protected:
303  // ////////// Attributes /////////
308 
313 
318 
323 
326 
329 
332 
335 
338 
341 
344 
347 
350 
353 
356 
357  };
358 
359 }
360 #endif // __STDAIR_BOM_SEGMENTCABIN_HPP
361 
stdair::SegmentCabin::setBookingCounter
void setBookingCounter(const NbOfBookings_T &iBookingCounter)
Definition: SegmentCabin.hpp:183
stdair::SegmentCabin::describeKey
const std::string describeKey() const
Definition: SegmentCabin.hpp:248
stdair::SegmentCabin::setMIN
void setMIN(const BlockSpace_T &iMIN)
Definition: SegmentCabin.hpp:173
stdair::SegmentCabin::describeConvexHull
const std::string describeConvexHull() const
Definition: SegmentCabin.cpp:72
stdair::SegmentCabin::setAvailabilityPool
void setAvailabilityPool(const Availability_T &iAvailabilityPool)
Definition: SegmentCabin.hpp:193
stdair::SegmentCabin::getBidPriceVector
const BidPriceVector_T & getBidPriceVector() const
Definition: SegmentCabin.hpp:141
stdair::SegmentCabin::_currentBidPrice
BidPrice_T _currentBidPrice
Definition: SegmentCabin.hpp:349
stdair::CommittedSpace_T
double CommittedSpace_T
Definition: stdair_inventory_types.hpp:57
stdair::BlockSpace_T
double BlockSpace_T
Definition: stdair_inventory_types.hpp:72
stdair::SegmentCabin::getBlockSpace
const BlockSpace_T & getBlockSpace() const
Definition: SegmentCabin.hpp:106
stdair::FacCloneBom
Base class for Factory layer.
Definition: FacCloneBom.hpp:22
PolicyTypes.hpp
stdair::SegmentCabin::setUPR
void setUPR(const UPR_T &iUPR)
Definition: SegmentCabin.hpp:178
stdair::SegmentCabin::resetConvexHull
void resetConvexHull()
Definition: SegmentCabin.hpp:213
stdair_inventory_types.hpp
stdair::SegmentCabin::getConvexHull
const PolicyList_T & getConvexHull() const
Definition: SegmentCabin.hpp:151
stdair::SegmentCabin::_convexHull
PolicyList_T _convexHull
Definition: SegmentCabin.hpp:355
stdair::BomAbstract
Base class for the Business Object Model (BOM) layer.
Definition: BomAbstract.hpp:24
stdair::SegmentCabin::_holderMap
HolderMap_T _holderMap
Definition: SegmentCabin.hpp:317
stdair::SegmentCabin::getCommittedSpace
const CommittedSpace_T & getCommittedSpace() const
Definition: SegmentCabin.hpp:126
stdair::SegmentCabin::_availabilityPool
Availability_T _availabilityPool
Definition: SegmentCabin.hpp:343
stdair::SegmentCabin::~SegmentCabin
virtual ~SegmentCabin()
Definition: SegmentCabin.cpp:52
stdair::BidPrice_T
double BidPrice_T
Definition: stdair_inventory_types.hpp:125
stdair::SegmentCabin::getBookingCounter
const NbOfBookings_T & getBookingCounter() const
Definition: SegmentCabin.hpp:121
stdair::SegmentCabin::_upr
UPR_T _upr
Definition: SegmentCabin.hpp:334
stdair::SegmentCabin::getParent
BomAbstract *const getParent() const
Definition: SegmentCabin.hpp:66
stdair::SegmentCabin::getFullerKey
const MapKey_T getFullerKey() const
Definition: SegmentCabin.cpp:56
stdair::SegmentCabin::_parent
BomAbstract * _parent
Definition: SegmentCabin.hpp:312
stdair::SegmentCabin::updateFromReservation
void updateFromReservation(const NbOfBookings_T &)
Definition: SegmentCabin.cpp:85
stdair::SegmentCabin
Class representing the actual attributes for an airline segment-cabin.
Definition: SegmentCabin.hpp:39
stdair
Handle on the StdAir library context.
Definition: BasChronometer.cpp:9
stdair::HolderMap_T
std::map< const std::type_info *, BomAbstract * > HolderMap_T
Definition: BomAbstract.hpp:63
stdair::SegmentCabin::_capacity
CabinCapacity_T _capacity
Definition: SegmentCabin.hpp:325
stdair::BidPriceVector_T
std::vector< BidPrice_T > BidPriceVector_T
Definition: stdair_inventory_types.hpp:128
stdair::SegmentCabinKey::toString
const std::string toString() const
Definition: SegmentCabinKey.cpp:46
stdair::MapKey_T
std::string MapKey_T
Definition: key_types.hpp:15
stdair::SegmentCabin::toStream
void toStream(std::ostream &ioOut) const
Definition: SegmentCabin.hpp:228
stdair::SegmentCabin::_blockSpace
BlockSpace_T _blockSpace
Definition: SegmentCabin.hpp:328
stdair::SegmentCabin::setCommittedSpace
void setCommittedSpace(const CommittedSpace_T &iCommittedSpace)
Definition: SegmentCabin.hpp:188
stdair::SegmentCabin::getKey
const Key_T & getKey() const
Definition: SegmentCabin.hpp:59
stdair::SegmentCabin::getAvailabilityPool
const Availability_T & getAvailabilityPool() const
Definition: SegmentCabin.hpp:131
BomAbstract.hpp
SegmentCabinTypes.hpp
stdair::SegmentCabin::setCapacity
void setCapacity(const CabinCapacity_T &iCapacity)
Definition: SegmentCabin.hpp:163
stdair::UPR_T
double UPR_T
Definition: stdair_inventory_types.hpp:60
stdair::SegmentCabin::fromStream
void fromStream(std::istream &ioIn)
Definition: SegmentCabin.hpp:237
stdair::SegmentCabin::_committedSpace
CommittedSpace_T _committedSpace
Definition: SegmentCabin.hpp:340
stdair::SegmentCabin::setBidPriceVector
void setBidPriceVector(const BidPriceVector_T &iBPV)
Definition: SegmentCabin.hpp:198
stdair::SegmentCabin::getFareFamilyStatus
const bool getFareFamilyStatus() const
Definition: SegmentCabin.hpp:146
stdair::SegmentCabin::getCurrentBidPrice
const BidPrice_T & getCurrentBidPrice() const
Definition: SegmentCabin.hpp:136
stdair::SegmentCabin::access
friend class boost::serialization::access
Definition: SegmentCabin.hpp:43
stdair::SegmentCabin::getMIN
const BlockSpace_T & getMIN() const
Definition: SegmentCabin.hpp:111
stdair::SegmentCabin::_key
Key_T _key
Definition: SegmentCabin.hpp:307
stdair::SegmentCabin::getHolderMap
const HolderMap_T & getHolderMap() const
Definition: SegmentCabin.hpp:73
stdair::SegmentCabin::_bidPriceVector
BidPriceVector_T _bidPriceVector
Definition: SegmentCabin.hpp:346
boost
Forward declarations.
Definition: AirlineClassList.hpp:16
stdair::SegmentCabin::activateFareFamily
void activateFareFamily()
Definition: SegmentCabin.hpp:203
stdair::SegmentCabin::serialize
void serialize(Archive &ar, const unsigned int iFileVersion)
Definition: CmdBomSerialiser.cpp:229
stdair::SegmentCabin::_fareFamilyActivation
bool _fareFamilyActivation
Definition: SegmentCabin.hpp:352
stdair::PolicyList_T
std::list< Policy * > PolicyList_T
Definition: PolicyTypes.hpp:17
stdair::SegmentCabin::getSegmentSnapshotTable
const SegmentSnapshotTable & getSegmentSnapshotTable() const
Definition: SegmentCabin.hpp:95
stdair::FacBomManager
Utility class for linking StdAir-based objects.
Definition: FacBomManager.hpp:30
stdair::SegmentCabin::_segmentSnapshotTable
SegmentSnapshotTable * _segmentSnapshotTable
Definition: SegmentCabin.hpp:322
stdair::CabinCode_T
std::string CabinCode_T
Definition: stdair_basic_types.hpp:41
boost::archive::detail::heap_allocation
Definition: FlightDate.hpp:24
stdair::SegmentCabinKey::getCabinCode
const CabinCode_T & getCabinCode() const
Definition: SegmentCabinKey.hpp:56
stdair::SegmentCabin::getUPR
const UPR_T & getUPR() const
Definition: SegmentCabin.hpp:116
stdair::SegmentCabin::getCapacity
const CabinCapacity_T & getCapacity() const
Definition: SegmentCabin.hpp:101
stdair::SegmentSnapshotTable
Class representing the actual attributes for an airline segment data tables.
Definition: SegmentSnapshotTable.hpp:31
stdair::SegmentCabin::setBlockSpace
void setBlockSpace(const BlockSpace_T &iBlockSpace)
Definition: SegmentCabin.hpp:168
stdair::Policy
Definition: Policy.hpp:30
stdair::SegmentCabin::_bookingCounter
NbOfBookings_T _bookingCounter
Definition: SegmentCabin.hpp:337
stdair::SegmentCabin::setSegmentSnapshotTable
void setSegmentSnapshotTable(SegmentSnapshotTable &ioTable)
Definition: SegmentCabin.hpp:158
stdair::Availability_T
double Availability_T
Definition: stdair_basic_types.hpp:123
stdair::SegmentCabin::_min
BlockSpace_T _min
Definition: SegmentCabin.hpp:331
stdair::SegmentCabin::addPolicy
void addPolicy(Policy &)
Definition: SegmentCabin.cpp:90
stdair::FacBom
Base class for Factory layer.
Definition: FacBom.hpp:22
stdair::SegmentCabinKey
Key of a given segment-cabin, made of a cabin code (only).
Definition: SegmentCabinKey.hpp:26
stdair::CabinCapacity_T
double CabinCapacity_T
Definition: stdair_inventory_types.hpp:51
stdair::NbOfBookings_T
NbOfRequests_T NbOfBookings_T
Definition: stdair_basic_types.hpp:104
SegmentCabinKey.hpp
stdair::SegmentCabin::toString
std::string toString() const
Definition: SegmentCabin.cpp:65
stdair::SegmentCabin::getCabinCode
const CabinCode_T & getCabinCode() const
Definition: SegmentCabin.hpp:80
stdair::SegmentCabin::Key_T
SegmentCabinKey Key_T
Definition: SegmentCabin.hpp:51