Go to the documentation of this file.00001 #ifndef __AIRINV_SVC_AIRINV_SERVICE_HPP
00002 #define __AIRINV_SVC_AIRINV_SERVICE_HPP
00003
00004
00005
00006
00007
00008 #include <string>
00009
00010 #include <stdair/stdair_basic_types.hpp>
00011 #include <stdair/stdair_service_types.hpp>
00012 #include <stdair/basic/ForecastingMethod.hpp>
00013 #include <stdair/basic/PartnershipTechnique.hpp>
00014 #include <stdair/bom/RMEventTypes.hpp>
00015
00016 #include <airrac/AIRRAC_Types.hpp>
00017
00019 namespace stdair {
00020 class AirlineFeatureSet;
00021 class STDAIR_Service;
00022 class Inventory;
00023 struct TravelSolutionStruct;
00024 struct BasLogParams;
00025 struct BasDBParams;
00026 }
00027
00028 namespace AIRINV {
00029
00031 class AIRINV_ServiceContext;
00032
00033
00037 class AIRINV_Service {
00038 public:
00039
00055 AIRINV_Service (const stdair::BasLogParams&, const stdair::BasDBParams&);
00056
00068 AIRINV_Service (const stdair::BasLogParams&);
00069
00086 AIRINV_Service (stdair::STDAIR_ServicePtr_T);
00087
00096 void parseAndLoad (const stdair::Filename_T& iInventoryFilename);
00097
00108 void parseAndLoad (const stdair::Filename_T& iScheduleFilename,
00109 const stdair::Filename_T& iODInputFilename,
00110 const AIRRAC::YieldFilePath& iYieldFilename);
00111
00115 ~AIRINV_Service();
00116
00117
00118 public:
00119
00127 void buildSampleBom();
00128
00134 stdair::RMEventList_T initRMEvents (const stdair::Date_T& iStartDate,
00135 const stdair::Date_T& iEndDate);
00136
00140 void calculateAvailability (stdair::TravelSolutionStruct&,
00141 const stdair::PartnershipTechnique&);
00142
00151 bool sell (const std::string& iSegmentDateKey, const stdair::ClassCode_T&,
00152 const stdair::PartySize_T&);
00153
00163 bool cancel (const std::string& iSegmentDateKey, const stdair::ClassCode_T&,
00164 const stdair::PartySize_T&);
00165
00169 void takeSnapshots (const stdair::AirlineCode_T&,
00170 const stdair::DateTime_T&);
00171
00175 void optimise (const stdair::AirlineCode_T&,
00176 const stdair::KeyDescription_T&,
00177 const stdair::DateTime_T&,
00178 const stdair::ForecastingMethod&,
00179 const stdair::PartnershipTechnique&);
00180
00181 public:
00182
00193 std::string jsonExport (const stdair::AirlineCode_T&,
00194 const stdair::FlightNumber_T&,
00195 const stdair::Date_T& iDepartureDate) const;
00196
00197 public:
00198
00212 std::string list (const stdair::AirlineCode_T& iAirlineCode = "all",
00213 const stdair::FlightNumber_T& iFlightNumber = 0) const;
00214
00224 bool check (const stdair::AirlineCode_T&, const stdair::FlightNumber_T&,
00225 const stdair::Date_T& iDepartureDate) const;
00226
00234 std::string csvDisplay() const;
00235
00247 std::string csvDisplay (const stdair::AirlineCode_T&,
00248 const stdair::FlightNumber_T&,
00249 const stdair::Date_T& iDepartureDate) const;
00250
00251
00252 private:
00253
00257 AIRINV_Service ();
00258
00262 AIRINV_Service (const AIRINV_Service&);
00263
00273 stdair::STDAIR_ServicePtr_T initStdAirService (const stdair::BasLogParams&,
00274 const stdair::BasDBParams&);
00275
00284 stdair::STDAIR_ServicePtr_T initStdAirService (const stdair::BasLogParams&);
00285
00289 void initRMOLService();
00290
00294 void initAIRRACService();
00295
00304 void addStdAirService (stdair::STDAIR_ServicePtr_T,
00305 const bool iOwnStdairService);
00306
00311 void initServiceContext();
00312
00319 void initAirinvService();
00320
00324 void finalise();
00325
00326
00327 private:
00328
00332 AIRINV_ServiceContext* _airinvServiceContext;
00333 };
00334 }
00335 #endif // __AIRINV_SVC_AIRINV_SERVICE_HPP