SimFQT Logo  1.00.4
C++ Simulated Fare Quote System Library
FareParserHelper.hpp
Go to the documentation of this file.
1 #ifndef __SIMFQT_CMD_FAREPARSERHELPER_HPP
2 #define __SIMFQT_CMD_FAREPARSERHELPER_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 // Boost
10 #include <boost/spirit/include/qi.hpp>
11 // StdAir
12 #include <stdair/command/CmdAbstract.hpp>
13 // Simfqt
14 #include <simfqt/SIMFQT_Types.hpp>
16 
17 // Forward declarations
18 namespace stdair {
19  class BomRoot;
20 }
21 
22 namespace SIMFQT {
23 
24  namespace FareParserHelper {
25 
26  // ///////////////////////////////////////////////////////////////////
27  // Semantic actions
28  // ////////////////////////////////////////////////////
30 
36  };
37 
43  void operator() (unsigned int,
44  boost::spirit::qi::unused_type,
45  boost::spirit::qi::unused_type) const;
46  };
47 
53  void operator() (std::vector<char>,
54  boost::spirit::qi::unused_type,
55  boost::spirit::qi::unused_type) const;
56  };
57 
63  void operator() (std::vector<char>,
64  boost::spirit::qi::unused_type,
65  boost::spirit::qi::unused_type) const;
66  };
67 
73  void operator() (std::vector<char>,
74  boost::spirit::qi::unused_type,
75  boost::spirit::qi::unused_type) const;
76  };
77 
78 
84  void operator() (boost::spirit::qi::unused_type,
85  boost::spirit::qi::unused_type,
86  boost::spirit::qi::unused_type) const;
87  };
88 
94  void operator() (boost::spirit::qi::unused_type,
95  boost::spirit::qi::unused_type,
96  boost::spirit::qi::unused_type) const;
97  };
98 
104  void operator() (boost::spirit::qi::unused_type,
105  boost::spirit::qi::unused_type,
106  boost::spirit::qi::unused_type) const;
107  };
108 
114  void operator() (boost::spirit::qi::unused_type,
115  boost::spirit::qi::unused_type,
116  boost::spirit::qi::unused_type) const;
117  };
118 
120  struct storePOS : public ParserSemanticAction {
124  void operator() (std::vector<char>,
125  boost::spirit::qi::unused_type,
126  boost::spirit::qi::unused_type) const;
127  };
128 
134  void operator() (char,
135  boost::spirit::qi::unused_type,
136  boost::spirit::qi::unused_type) const;
137  };
138 
144  void operator() (std::vector<char>,
145  boost::spirit::qi::unused_type,
146  boost::spirit::qi::unused_type) const;
147  };
148 
154  void operator() (unsigned int,
155  boost::spirit::qi::unused_type,
156  boost::spirit::qi::unused_type) const;
157  };
158 
164  void operator() (char,
165  boost::spirit::qi::unused_type,
166  boost::spirit::qi::unused_type) const;
167  };
168 
174  void operator() (char,
175  boost::spirit::qi::unused_type,
176  boost::spirit::qi::unused_type) const;
177  };
178 
184  void operator() (char,
185  boost::spirit::qi::unused_type,
186  boost::spirit::qi::unused_type) const;
187  };
188 
194  void operator() (unsigned int,
195  boost::spirit::qi::unused_type,
196  boost::spirit::qi::unused_type) const;
197  };
198 
200  struct storeFare : public ParserSemanticAction {
204  void operator() (double,
205  boost::spirit::qi::unused_type,
206  boost::spirit::qi::unused_type) const;
207  };
208 
214  void operator() (std::vector<char>,
215  boost::spirit::qi::unused_type,
216  boost::spirit::qi::unused_type) const;
217  };
218 
224  void operator() (std::vector<char>,
225  boost::spirit::qi::unused_type,
226  boost::spirit::qi::unused_type) const;
227  };
228 
230  struct doEndFare : public ParserSemanticAction {
232  doEndFare (stdair::BomRoot&, FareRuleStruct&);
234  void operator() (boost::spirit::qi::unused_type,
235  boost::spirit::qi::unused_type,
236  boost::spirit::qi::unused_type) const;
238  stdair::BomRoot& _bomRoot;
239  };
240 
241  }
242 
244  //
245  // Entry class for the file parser
246  //
248 
254  class FareRuleFileParser : public stdair::CmdAbstract {
255  public:
257  FareRuleFileParser (stdair::BomRoot& ioBomRoot,
258  const stdair::Filename_T& iFilename);
259 
261  void generateFareRules ();
262 
263  private:
265  void init();
266 
267  private:
268  // Attributes
270  stdair::Filename_T _filename;
271 
273  stdair::BomRoot& _bomRoot;
274 
276  FareRuleStruct _fareRule;
277  };
278 
279 }
280 #endif // __SIMFQT_CMD_FAREPARSERHELPER_HPP
SIMFQT::FareParserHelper::storeDestination
Definition: FareParserHelper.hpp:59
SIMFQT::FareParserHelper::storeAirlineCode::storeAirlineCode
storeAirlineCode(FareRuleStruct &)
Definition: FareParserHelper.cpp:378
SIMFQT::FareParserHelper::storeAdvancePurchase::storeAdvancePurchase
storeAdvancePurchase(FareRuleStruct &)
Definition: FareParserHelper.cpp:254
SIMFQT::FareParserHelper::storeDateRangeStart
Definition: FareParserHelper.hpp:80
SIMFQT::FareParserHelper::storePOS::storePOS
storePOS(FareRuleStruct &)
Definition: FareParserHelper.cpp:186
SIMFQT::FareParserHelper::storeAdvancePurchase::operator()
void operator()(unsigned int, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:259
SIMFQT::FareParserHelper::storeCabinCode::storeCabinCode
storeCabinCode(FareRuleStruct &)
Definition: FareParserHelper.cpp:212
SIMFQT::FareParserHelper::storeTripType::operator()
void operator()(std::vector< char >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:96
SIMFQT::FareParserHelper::storeSaturdayStay::operator()
void operator()(char, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:275
SIMFQT::FareParserHelper::storeDateRangeEnd::operator()
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:134
SIMFQT::FareParserHelper::storeMinimumStay::storeMinimumStay
storeMinimumStay(FareRuleStruct &)
Definition: FareParserHelper.cpp:346
SIMFQT::FareParserHelper::storeAirlineCode
Definition: FareParserHelper.hpp:210
SIMFQT::FareParserHelper::storeOrigin::operator()
void operator()(std::vector< char >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:64
SIMFQT::FareParserHelper::storeSaturdayStay
Definition: FareParserHelper.hpp:160
SIMFQT::FareParserHelper::ParserSemanticAction
Definition: FareParserHelper.hpp:31
SIMFQT::FareParserHelper::storeDateRangeStart::storeDateRangeStart
storeDateRangeStart(FareRuleStruct &)
Definition: FareParserHelper.cpp:113
SIMFQT::FareParserHelper::storeSaturdayStay::storeSaturdayStay
storeSaturdayStay(FareRuleStruct &)
Definition: FareParserHelper.cpp:270
SIMFQT::FareParserHelper::storeNonRefundable::storeNonRefundable
storeNonRefundable(FareRuleStruct &)
Definition: FareParserHelper.cpp:321
stdair
Forward declarations.
Definition: FareParser.hpp:16
SIMFQT::FareRuleFileParser::generateFareRules
void generateFareRules()
Definition: FareParserHelper.cpp:667
SIMFQT::FareParserHelper::storeChannel::operator()
void operator()(std::vector< char >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:238
SIMFQT::FareParserHelper::storeNonRefundable
Definition: FareParserHelper.hpp:180
SIMFQT::FareParserHelper::storeDateRangeStart::operator()
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:118
SIMFQT::FareRuleStruct
Definition: FareRuleStruct.hpp:21
SIMFQT::FareParserHelper::storeClass
Definition: FareParserHelper.hpp:220
SIMFQT::FareParserHelper::storeDestination::storeDestination
storeDestination(FareRuleStruct &)
Definition: FareParserHelper.cpp:75
SIMFQT::FareParserHelper::storeEndRangeTime
Definition: FareParserHelper.hpp:110
SIMFQT::FareParserHelper::storeCabinCode
Definition: FareParserHelper.hpp:130
SIMFQT::FareParserHelper::storeClass::operator()
void operator()(std::vector< char >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:401
SIMFQT::FareParserHelper::storeStartRangeTime::operator()
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:155
SIMFQT::FareParserHelper::storeChangeFees
Definition: FareParserHelper.hpp:170
FareRuleStruct.hpp
SIMFQT::FareParserHelper::storeDestination::operator()
void operator()(std::vector< char >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:80
SIMFQT::FareParserHelper::ParserSemanticAction::_fareRule
FareRuleStruct & _fareRule
Definition: FareParserHelper.hpp:35
SIMFQT::FareParserHelper::doEndFare::_bomRoot
stdair::BomRoot & _bomRoot
Definition: FareParserHelper.hpp:238
SIMFQT_Types.hpp
SIMFQT::FareParserHelper::storeFare::storeFare
storeFare(FareRuleStruct &)
Definition: FareParserHelper.cpp:362
SIMFQT::FareParserHelper::doEndFare::operator()
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:427
SIMFQT::FareParserHelper::storeTripType
Definition: FareParserHelper.hpp:69
SIMFQT::FareParserHelper::storeAdvancePurchase
Definition: FareParserHelper.hpp:150
SIMFQT::FareParserHelper::storeDateRangeEnd
Definition: FareParserHelper.hpp:90
SIMFQT::FareParserHelper::storeDateRangeEnd::storeDateRangeEnd
storeDateRangeEnd(FareRuleStruct &)
Definition: FareParserHelper.cpp:129
SIMFQT::FareParserHelper::storeNonRefundable::operator()
void operator()(char, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:326
SIMFQT::FareParserHelper::storeFare
Definition: FareParserHelper.hpp:200
SIMFQT::FareParserHelper::storeOrigin
Definition: FareParserHelper.hpp:49
SIMFQT::FareParserHelper::ParserSemanticAction::ParserSemanticAction
ParserSemanticAction(FareRuleStruct &)
Definition: FareParserHelper.cpp:30
SIMFQT::FareRuleFileParser::FareRuleFileParser
FareRuleFileParser(stdair::BomRoot &ioBomRoot, const stdair::Filename_T &iFilename)
Definition: FareParserHelper.cpp:645
SIMFQT::FareParserHelper::storeFare::operator()
void operator()(double, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:367
SIMFQT::FareParserHelper::storeChannel
Definition: FareParserHelper.hpp:140
SIMFQT::FareParserHelper::storeChangeFees::storeChangeFees
storeChangeFees(FareRuleStruct &)
Definition: FareParserHelper.cpp:295
SIMFQT::FareParserHelper::storeOrigin::storeOrigin
storeOrigin(FareRuleStruct &)
Definition: FareParserHelper.cpp:59
SIMFQT::FareParserHelper::storeClass::storeClass
storeClass(FareRuleStruct &)
Definition: FareParserHelper.cpp:396
SIMFQT::FareParserHelper::storeTripType::storeTripType
storeTripType(FareRuleStruct &)
Definition: FareParserHelper.cpp:91
SIMFQT::FareParserHelper::doEndFare
Definition: FareParserHelper.hpp:230
SIMFQT::FareParserHelper::storeEndRangeTime::storeEndRangeTime
storeEndRangeTime(FareRuleStruct &)
Definition: FareParserHelper.cpp:168
SIMFQT
Definition: BasConst.cpp:7
SIMFQT::FareParserHelper::storeStartRangeTime
Definition: FareParserHelper.hpp:100
SIMFQT::FareParserHelper::storeMinimumStay
Definition: FareParserHelper.hpp:190
SIMFQT::FareParserHelper::storeFareId::operator()
void operator()(unsigned int, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:41
SIMFQT::FareParserHelper::storePOS
Definition: FareParserHelper.hpp:120
SIMFQT::FareParserHelper::storeChangeFees::operator()
void operator()(char, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:300
SIMFQT::FareRuleFileParser
Definition: FareParserHelper.hpp:254
SIMFQT::FareParserHelper::storeAirlineCode::operator()
void operator()(std::vector< char >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:383
SIMFQT::FareParserHelper::storeFareId::storeFareId
storeFareId(FareRuleStruct &)
Definition: FareParserHelper.cpp:36
SIMFQT::FareParserHelper::storeEndRangeTime::operator()
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:173
SIMFQT::FareParserHelper::storeMinimumStay::operator()
void operator()(unsigned int, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:351
SIMFQT::FareParserHelper::doEndFare::doEndFare
doEndFare(stdair::BomRoot &, FareRuleStruct &)
Definition: FareParserHelper.cpp:420
SIMFQT::FareParserHelper::storeCabinCode::operator()
void operator()(char, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:217
SIMFQT::FareParserHelper::storeFareId
Definition: FareParserHelper.hpp:39
SIMFQT::FareParserHelper::storeChannel::storeChannel
storeChannel(FareRuleStruct &)
Definition: FareParserHelper.cpp:233
SIMFQT::FareParserHelper::storePOS::operator()
void operator()(std::vector< char >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
Definition: FareParserHelper.cpp:191
SIMFQT::FareParserHelper::storeStartRangeTime::storeStartRangeTime
storeStartRangeTime(FareRuleStruct &)
Definition: FareParserHelper.cpp:150