AirRAC Logo  1.00.0
C++ Simulated Revenue Accounting (RAC) System Library
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
AIRRAC_Service.hpp
Go to the documentation of this file.
1 #ifndef __AIRRAC_SVC_AIRRAC_SERVICE_HPP
2 #define __AIRRAC_SVC_AIRRAC_SERVICE_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // StdAir
8 #include <stdair/stdair_basic_types.hpp>
9 #include <stdair/stdair_service_types.hpp>
10 #include <stdair/bom/TravelSolutionTypes.hpp>
11 // AirRAC
12 #include <airrac/AIRRAC_Types.hpp>
13 
14 // Forward declarations.
15 namespace stdair {
16  class STDAIR_Service;
17  class BomRoot;
18  struct BasLogParams;
19  struct BasDBParams;
20 }
21 
22 namespace AIRRAC {
23 
26 
30  class AIRRAC_Service {
31  public:
32  // ////////////////// Constructors and Destructors //////////////////
33 
45  AIRRAC_Service (const stdair::BasLogParams&);
46 
59  AIRRAC_Service (const stdair::BasLogParams&, const stdair::BasDBParams&);
60 
76  AIRRAC_Service (stdair::STDAIR_ServicePtr_T ioSTDAIR_ServicePtr);
77 
86  void parseAndLoad (const YieldFilePath& iYieldFilename);
87 
88 
93 
94 
95  public:
96  // /////////// Business Methods /////////////
100  void calculateYields (stdair::TravelSolutionList_T&);
101 
105  void updateYields(stdair::BomRoot&);
106 
113  void buildSampleBom();
114 
118  void clonePersistentBom();
119 
124  void buildComplementaryLinks (stdair::BomRoot&);
125 
143  void buildSampleTravelSolutions (stdair::TravelSolutionList_T&);
144 
145 
146  public:
147  // //////////////// Display support methods /////////////////
155  std::string csvDisplay() const;
156 
164  std::string csvDisplay (const stdair::TravelSolutionList_T&) const;
165 
166 
167  private:
168  // /////// Construction and Destruction helper methods ///////
172  AIRRAC_Service();
173 
178 
183  void initServiceContext();
184 
194  stdair::STDAIR_ServicePtr_T initStdAirService (const stdair::BasLogParams&,
195  const stdair::BasDBParams&);
196 
205  stdair::STDAIR_ServicePtr_T initStdAirService (const stdair::BasLogParams&);
206 
215  void addStdAirService (stdair::STDAIR_ServicePtr_T,
216  const bool iOwnStdairService);
217 
224  void initAirracService();
225 
234  void initAirracService (const YieldFilePath& iYieldFilename);
235 
239  void finalise();
240 
241 
242  private:
243  // ///////// Service Context /////////
247  AIRRAC_ServiceContext* _airracServiceContext;
248  };
249 }
250 #endif // __AIRRAC_SVC_AIRRAC_SERVICE_HPP