AirInv Logo  0.1.2
C++ Simulated Airline Inventory Management System library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
InventoryManager.hpp
Go to the documentation of this file.
1 #ifndef __AIRINV_CMD_INVENTORYMANAGER_HPP
2 #define __AIRINV_CMD_INVENTORYMANAGER_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 // STDAIR
10 #include <stdair/stdair_basic_types.hpp>
11 #include <stdair/bom/RMEventTypes.hpp>
12 #include <stdair/basic/PartnershipTechnique.hpp>
13 
14 // Forward declarations
15 namespace stdair {
16  class BomRoot;
17  class Inventory;
18  class FlightDate;
19  class SegmentDate;
20  class SegmentCabin;
21  class EventQueue;
22  struct TravelSolutionStruct;
23 }
24 
25 namespace AIRINV {
26 
27  // //////////////// Type definitions ////////////////
28  typedef std::map<const stdair::Date_T,
29  stdair::SegmentCabin*> DepartureDateSegmentCabinMap_T;
30  typedef std::map<const std::string,
32 
35  friend class AIRINV_Master_Service;
36  friend class AIRINV_Service;
37 
38  private:
40  static void initSnapshotEvents (const stdair::Date_T&,
41  const stdair::Date_T&,
42  stdair::EventQueue&);
43 
45  static void initRMEvents (const stdair::Inventory&, stdair::RMEventList_T&,
46  const stdair::Date_T&, const stdair::Date_T&);
47 
49  static void addRMEventsToEventQueue (stdair::EventQueue&,
50  stdair::RMEventList_T&);
51 
53  static void calculateAvailability (const stdair::BomRoot&,
54  stdair::TravelSolutionStruct&,
55  const stdair::PartnershipTechnique&);
56 
58  static void calculateAvailabilityByAU (stdair::TravelSolutionStruct&);
59 
61  static void calculateAvailabilityByRAE (stdair::TravelSolutionStruct&);
62 
67  static void calculateAvailabilityByIBP (stdair::TravelSolutionStruct&);
68 
75  static void calculateAvailabilityByProtectiveIBP (stdair::TravelSolutionStruct&);
76 
78  static bool sell (stdair::Inventory&, const std::string& iSegmentDateKey,
79  const stdair::ClassCode_T&, const stdair::PartySize_T&);
80 
82  static bool cancel (stdair::Inventory&, const std::string& iSegmentDateKey,
83  const stdair::ClassCode_T&, const stdair::PartySize_T&);
84 
86  static void takeSnapshots (const stdair::Inventory&,
87  const stdair::DateTime_T&);
88 
90  static void updateBookingControls (stdair::FlightDate&);
91 
92  public:
95  static void createDirectAccesses (const stdair::BomRoot&);
96  static void createDirectAccesses (stdair::Inventory&);
97  static void createDirectAccesses (stdair::FlightDate&);
98  static void createDirectAccesses (stdair::SegmentDate&);
99 
100 
103  static void buildSimilarSegmentCabinSets (const stdair::BomRoot&);
104  static void buildSimilarSegmentCabinSets (stdair::Inventory&);
105  static void buildGuillotineBlock (stdair::Inventory&,
106  const stdair::GuillotineNumber_T&,
108 
109 
111  static void setDefaultBidPriceVector (stdair::BomRoot&);
112  static void setDefaultBidPriceVector (stdair::Inventory&);
113 
114  private:
116  InventoryManager() {}
119  ~InventoryManager() {}
120  };
121 
122 }
123 #endif // __AIRINV_CMD_INVENTORYMANAGER_HPP