StdAir Logo  1.00.8
C++ Standard Airline IT Object Library
Inventory.hpp
Go to the documentation of this file.
1 #ifndef __STDAIR_BOM_INVENTORY_HPP
2 #define __STDAIR_BOM_INVENTORY_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <iosfwd>
9 #include <string>
10 // StdAir
17 
19 namespace boost {
20  namespace serialization {
21  class access;
22  }
23  namespace archive {
24  namespace detail {
25  template <class T>
26  struct heap_allocation;
27  }
28  }
29 }
30 
31 
32 namespace stdair {
33 
35  struct FlightDateKey;
36  class FlightDate;
37 
41  class Inventory : public BomAbstract {
42  template <typename BOM> friend class FacBom;
43  template <typename BOM> friend class FacCloneBom;
44  friend class FacBomManager;
46  template <class T> friend struct boost::archive::detail::heap_allocation;
47 
48  public :
49  // ////////// Type definitions ////////////
54 
55 
56  public:
57  // ////////// Getters ////////////
59  const Key_T& getKey() const {
60  return _key;
61  }
62 
64  const AirlineCode_T& getAirlineCode() const {
65  return _key.getAirlineCode();
66  }
67 
70 
73 
76 
79 
82 
84  BomAbstract* const getParent() const {
85  return _parent;
86  }
87 
89  const HolderMap_T& getHolderMap() const {
90  return _holderMap;
91  }
92 
103  FlightDate* getFlightDate (const std::string& iFlightDateKeyStr) const;
104 
115  FlightDate* getFlightDate (const FlightDateKey&) const;
116 
121  return _airlineFeature;
122  }
123 
124 
125  private:
126  // /////////// Setters ////////////
128  void setAirlineFeature (AirlineFeature& iAirlineFeature) {
129  _airlineFeature = &iAirlineFeature;
130  }
131 
132 
133  public:
134  // /////////// Display support methods /////////
140  void toStream (std::ostream& ioOut) const {
141  ioOut << toString();
142  }
143 
149  void fromStream (std::istream& ioIn) {
150  }
151 
155  std::string toString() const;
156 
160  const std::string describeKey() const {
161  return _key.toString();
162  }
163 
164 
165  public:
166  // /////////// (Boost) Serialisation support methods /////////
170  template<class Archive>
171  void serialize (Archive& ar, const unsigned int iFileVersion);
172 
173  private:
181  void serialisationImplementationExport() const;
182  void serialisationImplementationImport();
183 
184 
185  protected:
186  // ////////// Constructors and destructors /////////
190  Inventory (const Key_T&);
191 
195  virtual ~Inventory();
196 
197  private:
201  Inventory();
205  Inventory (const Inventory&);
206 
207 
208  protected:
209  // ////////// Attributes /////////
214 
219 
224 
229  };
230 
231 }
232 #endif // __STDAIR_BOM_INVENTORY_HPP
233 
stdair::Inventory::_holderMap
HolderMap_T _holderMap
Definition: Inventory.hpp:228
stdair::ForecastingMethod::EN_ForecastingMethod
EN_ForecastingMethod
Definition: ForecastingMethod.hpp:17
stdair::UnconstrainingMethod::EN_UnconstrainingMethod
EN_UnconstrainingMethod
Definition: UnconstrainingMethod.hpp:17
stdair::Inventory::getPartnershipTechnique
PartnershipTechnique::EN_PartnershipTechnique getPartnershipTechnique() const
Definition: Inventory.cpp:92
stdair::Inventory::_parent
BomAbstract * _parent
Definition: Inventory.hpp:218
stdair::AirlineCode_T
std::string AirlineCode_T
Definition: stdair_basic_types.hpp:31
stdair::OptimisationMethod::EN_OptimisationMethod
EN_OptimisationMethod
Definition: OptimisationMethod.hpp:17
stdair::Inventory::getOptimisationMethod
OptimisationMethod::EN_OptimisationMethod getOptimisationMethod() const
Definition: Inventory.cpp:85
stdair::InventoryKey::toString
const std::string toString() const
Definition: InventoryKey.cpp:46
stdair::Inventory::getAirlineFeature
AirlineFeature * getAirlineFeature() const
Definition: Inventory.hpp:120
stdair::FacCloneBom
Base class for Factory layer.
Definition: FacCloneBom.hpp:22
stdair::Inventory::~Inventory
virtual ~Inventory()
Definition: Inventory.cpp:38
stdair_inventory_types.hpp
stdair::Inventory::_airlineFeature
AirlineFeature * _airlineFeature
Definition: Inventory.hpp:223
stdair::BomAbstract
Base class for the Business Object Model (BOM) layer.
Definition: BomAbstract.hpp:24
InventoryTypes.hpp
stdair::Inventory::describeKey
const std::string describeKey() const
Definition: Inventory.hpp:160
stdair::Inventory
Class representing the actual attributes for an airline inventory.
Definition: Inventory.hpp:41
stdair::AirlineFeature
Class representing various configuration parameters (e.g., revenue management methods such EMSRb or M...
Definition: AirlineFeature.hpp:25
stdair::Inventory::access
friend class boost::serialization::access
Definition: Inventory.hpp:45
stdair::Inventory::getParent
BomAbstract *const getParent() const
Definition: Inventory.hpp:84
stdair::Inventory::getPreOptimisationMethod
PreOptimisationMethod::EN_PreOptimisationMethod getPreOptimisationMethod() const
Definition: Inventory.cpp:78
stdair::Inventory::Key_T
InventoryKey Key_T
Definition: Inventory.hpp:53
stdair::InventoryKey::getAirlineCode
const AirlineCode_T & getAirlineCode() const
Definition: InventoryKey.hpp:58
stdair::FlightDate
Class representing the actual attributes for an airline flight-date.
Definition: FlightDate.hpp:42
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::Inventory::getUnconstrainingMethod
UnconstrainingMethod::EN_UnconstrainingMethod getUnconstrainingMethod() const
Definition: Inventory.cpp:71
stdair::Inventory::getFlightDate
FlightDate * getFlightDate(const std::string &iFlightDateKeyStr) const
Definition: Inventory.cpp:50
BasConst_Inventory.hpp
BomAbstract.hpp
stdair::Inventory::_key
Key_T _key
Definition: Inventory.hpp:213
stdair::PartnershipTechnique::EN_PartnershipTechnique
EN_PartnershipTechnique
Definition: PartnershipTechnique.hpp:19
stdair::Inventory::fromStream
void fromStream(std::istream &ioIn)
Definition: Inventory.hpp:149
AirlineFeature.hpp
InventoryKey.hpp
boost
Forward declarations.
Definition: AirlineClassList.hpp:16
stdair::PreOptimisationMethod::EN_PreOptimisationMethod
EN_PreOptimisationMethod
Definition: PreOptimisationMethod.hpp:17
stdair::Inventory::toStream
void toStream(std::ostream &ioOut) const
Definition: Inventory.hpp:140
stdair::FacBomManager
Utility class for linking StdAir-based objects.
Definition: FacBomManager.hpp:30
boost::archive::detail::heap_allocation
Definition: FlightDate.hpp:24
stdair::Inventory::serialize
void serialize(Archive &ar, const unsigned int iFileVersion)
Definition: CmdBomSerialiser.cpp:160
stdair::Inventory::getHolderMap
const HolderMap_T & getHolderMap() const
Definition: Inventory.hpp:89
stdair::InventoryKey
Key of a given inventory, made of the airline code.
Definition: InventoryKey.hpp:26
stdair::Inventory::getForecastingMethod
ForecastingMethod::EN_ForecastingMethod getForecastingMethod() const
Definition: Inventory.cpp:64
stdair::Inventory::toString
std::string toString() const
Definition: Inventory.cpp:42
stdair::FacBom
Base class for Factory layer.
Definition: FacBom.hpp:22
stdair::FlightDateKey
Key of a given flight-date, made of a flight number and a departure date.
Definition: FlightDateKey.hpp:28
stdair::Inventory::getKey
const Key_T & getKey() const
Definition: Inventory.hpp:59
stdair::Inventory::getAirlineCode
const AirlineCode_T & getAirlineCode() const
Definition: Inventory.hpp:64