TraDemGen Logo  0.2.2
C++ Simulated Travel Demand Generation Library
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
DemandManager.hpp
Go to the documentation of this file.
1 #ifndef __TRADEMGEN_CMD_DEMANDMANAGER_HPP
2 #define __TRADEMGEN_CMD_DEMANDMANAGER_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // StdAir
8 #include <stdair/stdair_basic_types.hpp>
9 #include <stdair/basic/RandomGeneration.hpp>
10 #include <stdair/basic/DemandGenerationMethod.hpp>
11 #include <stdair/bom/BookingRequestTypes.hpp>
12 #include <stdair/command/CmdAbstract.hpp>
13 // TraDemGen
17 
18 // Forward declarations
19 namespace stdair {
20  class EventQueue;
21  struct ProgressStatusSet;
22  struct TravelSolutionStruct;
23 }
24 
25 namespace TRADEMGEN {
26 
27  // Forward declarations
28  struct DemandDistribution;
29  struct DemandStruct;
30  class DemandStream;
31  namespace DemandParserHelper {
32  struct doEndDemand;
33  }
34 
38  class DemandManager : public stdair::CmdAbstract {
40  friend class TRADEMGEN_Service;
41 
42  private:
43  // //////// Business methodes //////////
123  static void buildSampleBomStd (stdair::EventQueue&, stdair::RandomGeneration&,
124  const POSProbabilityMass_T&);
125 
126  // Demand sample bom for partnerships study.
127  static void buildSampleBom (stdair::EventQueue&, stdair::RandomGeneration&,
128  const POSProbabilityMass_T&);
129 
137  static void createDemandCharacteristics (stdair::EventQueue&,
138  stdair::RandomGeneration&,
139  const POSProbabilityMass_T&,
140  const DemandStruct&);
141 
149  static stdair::RandomSeed_T generateSeed (stdair::RandomGeneration&);
150 
172  static DemandStream&
173  createDemandStream (stdair::EventQueue&,
174  const DemandStreamKey&,
182  const stdair::WTP_T&,
184  const DemandDistribution&, stdair::BaseGenerator_T&,
185  const stdair::RandomSeed_T&,
186  const stdair::RandomSeed_T&,
187  const POSProbabilityMass_T&);
188 
205  static const bool
206  stillHavingRequestsToBeGenerated (const stdair::EventQueue&,
207  const stdair::DemandStreamKeyStr_T&,
208  stdair::ProgressStatusSet&,
209  const stdair::DemandGenerationMethod&);
210 
225  static stdair::Count_T generateFirstRequests (stdair::EventQueue&,
226  stdair::RandomGeneration&,
227  const stdair::DemandGenerationMethod&);
228 
249  static stdair::BookingRequestPtr_T
250  generateNextRequest (stdair::EventQueue&, stdair::RandomGeneration&,
251  const stdair::DemandStreamKeyStr_T&,
252  const stdair::DemandGenerationMethod&);
253 
262  static void reset (stdair::EventQueue&, stdair::BaseGenerator_T&);
263 
267  static bool generateCancellation (stdair::EventQueue&,
268  stdair::RandomGeneration&,
269  const stdair::TravelSolutionStruct&,
270  const stdair::PartySize_T&,
271  const stdair::DateTime_T&,
272  const stdair::Date_T&);
273  };
274 
275 }
276 #endif // __TRADEMGEN_CMD_DEMANDMANAGER_HPP