RMOL Logo  1.00.0
C++ library of Revenue Management and Optimisation classes and functions
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
RMOL_ServiceContext.hpp
Go to the documentation of this file.
1 #ifndef __RMOL_SVC_RMOL_SERVICE_CONTEXT_HPP
2 #define __RMOL_SVC_RMOL_SERVICE_CONTEXT_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 // StdAir
10 #include <stdair/stdair_basic_types.hpp>
11 #include <stdair/stdair_inventory_types.hpp>
12 #include <stdair/stdair_maths_types.hpp>
13 #include <stdair/stdair_service_types.hpp>
14 #include <stdair/service/ServiceAbstract.hpp>
15 // RMOL
16 #include <rmol/RMOL_Types.hpp>
17 
19 namespace stdair {
20  class STDAIR_Service;
21  class LegCabin;
22 }
23 
24 namespace RMOL {
25 
29  class RMOL_ServiceContext : public stdair::ServiceAbstract {
35  friend class RMOL_Service;
36  friend class FacRmolServiceContext;
37 
38  private:
39  // ///////// Getters //////////
43  stdair::STDAIR_ServicePtr_T getSTDAIR_ServicePtr() const {
44  return _stdairService;
45  }
46 
50  stdair::STDAIR_Service& getSTDAIR_Service() const;
51 
55  const bool getOwnStdairServiceFlag() const {
56  return _ownStdairService;
57  }
58 
59 
60  private:
61  // ///////// Setters //////////
65  void setSTDAIR_Service (stdair::STDAIR_ServicePtr_T ioSTDAIR_ServicePtr,
66  const bool iOwnStdairService) {
67  _stdairService = ioSTDAIR_ServicePtr;
68  _ownStdairService = iOwnStdairService;
69  }
70 
74  void reset();
75 
76 
77  private:
78  // ///////// Display Methods //////////
82  const std::string shortDisplay() const;
83 
87  const std::string display() const;
88 
92  const std::string describe() const;
93 
94 
95  private:
96  // /////// Construction / initialisation ////////
100  RMOL_ServiceContext();
104  RMOL_ServiceContext (const RMOL_ServiceContext&);
105 
109  ~RMOL_ServiceContext();
110 
111 
112  private:
113  // ///////////// Children ////////////
117  stdair::STDAIR_ServicePtr_T _stdairService;
118 
122  bool _ownStdairService;
123  };
124 
125 }
126 #endif // __RMOL_SVC_RMOL_SERVICE_CONTEXT_HPP