AirTSP Logo  1.01.6
C++ Simulated Airline Travel Solution Provider (TSP) Library
ScheduleParserHelper.hpp
Go to the documentation of this file.
1 #ifndef __AIRTSP_CMD_SCHEDULEPARSERHELPER_HPP
2 #define __AIRTSP_CMD_SCHEDULEPARSERHELPER_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 // StdAir
10 #include <stdair/command/CmdAbstract.hpp>
11 // AirTSP
12 #include <airtsp/AIRTSP_Types.hpp>
15 
16 // Forward declarations
17 namespace stdair {
18  class BomRoot;
19 }
20 
21 namespace AIRTSP {
22 
23  namespace ScheduleParserHelper {
24 
25  // ///////////////////////////////////////////////////////////////////
26  // Semantic actions
27  // ///////////////////////////////////////////////////////////////////
34  };
35 
41  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
42  };
43 
49  void operator() (unsigned int iNumber) const;
50  };
51 
57  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
58  };
59 
65  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
66  };
67 
69  struct storeDow : public ParserSemanticAction {
73  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
74  };
75 
81  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
82  };
83 
89  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
90  };
91 
97  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
98  };
99 
105  void operator() (unsigned int iNumber) const;
106  };
107 
113  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
114  };
115 
121  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
122  };
123 
129  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
130  };
131 
137  void operator() (char iChar) const;
138  };
139 
145  void operator() (double iReal) const;
146  };
147 
156  void operator() (char iChar) const;
157  };
158 
164  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
165  };
166 
172  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
173  };
174 
180  void operator() (char iChar) const;
181  };
182 
188  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
189  };
190 
196  void operator() (int iCode) const;
197  };
198 
204  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
205  };
206 
212  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
213  };
214 
220  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
221  };
222 
226  doEndFlight (stdair::BomRoot&, FlightPeriodStruct&);
228  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
230  stdair::BomRoot& _bomRoot;
231  };
232 
233 
235  //
236  // (Boost Spirit) Grammar Definition
237  //
239 
282  public boost::spirit::classic::grammar<FlightPeriodParser> {
283 
284  FlightPeriodParser (stdair::BomRoot&, FlightPeriodStruct&);
285 
286  template <typename ScannerT>
287  struct definition {
288  definition (FlightPeriodParser const& self);
289 
290  // Instantiation of rules
291  boost::spirit::classic::rule<ScannerT> flight_period_list, flight_period,
298 
300  boost::spirit::classic::rule<ScannerT> const& start() const;
301  };
302 
303  // Parser Context
304  stdair::BomRoot& _bomRoot;
306  };
307 
308  }
313  //
315  // Entry class for the file parser
316  //
318 
323  class FlightPeriodFileParser : public stdair::CmdAbstract {
324  public:
326  FlightPeriodFileParser (stdair::BomRoot& ioBomRoot,
327  const stdair::Filename_T& iFilename);
328 
330  bool generateInventories ();
331 
332  private:
334  void init();
335 
336  private:
337  // Attributes
339  stdair::Filename_T _filename;
340 
342  iterator_t _startIterator;
343 
345  iterator_t _endIterator;
346 
348  stdair::BomRoot& _bomRoot;
349 
351  FlightPeriodStruct _flightPeriod;
352  };
353 
354 }
355 #endif // __AIRTSP_CMD_SCHEDULEPARSERHELPER_HPP
AIRTSP::ScheduleParserHelper::storeSegmentCabinCode::operator()
void operator()(char iChar) const
Definition: ScheduleParserHelper.cpp:339
AIRTSP::ScheduleParserHelper::doEndFlight
Definition: ScheduleParserHelper.hpp:224
AIRTSP::ScheduleParserHelper::FlightPeriodParser::FlightPeriodParser
FlightPeriodParser(stdair::BomRoot &, FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:533
AIRTSP::ScheduleParserHelper::storeOperatingAirlineCode::storeOperatingAirlineCode
storeOperatingAirlineCode(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:162
AIRTSP::ScheduleParserHelper::storeAirlineCode::storeAirlineCode
storeAirlineCode(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:32
AIRTSP::ScheduleParserHelper::storeDateRangeStart::storeDateRangeStart
storeDateRangeStart(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:62
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::leg_details
boost::spirit::classic::rule< ScannerT > leg_details
Definition: ScheduleParserHelper.hpp:294
AIRTSP::ScheduleParserHelper::storeFlightNumber::storeFlightNumber
storeFlightNumber(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:50
AIRTSP_Types.hpp
AIRTSP::ScheduleParserHelper::FlightPeriodParser
Definition: ScheduleParserHelper.hpp:281
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::generic_segment
boost::spirit::classic::rule< ScannerT > generic_segment
Definition: ScheduleParserHelper.hpp:297
AIRTSP::ScheduleParserHelper::storeDateRangeEnd::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:82
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::full_segment_cabin_details
boost::spirit::classic::rule< ScannerT > full_segment_cabin_details
Definition: ScheduleParserHelper.hpp:295
AIRTSP::iterator_t
boost::spirit::classic::file_iterator< char_t > iterator_t
Definition: BasParserTypes.hpp:35
AIRTSP::ScheduleParserHelper::storeFlightNumber
Definition: ScheduleParserHelper.hpp:45
AIRTSP::ScheduleParserHelper::storeBoardingTime
Definition: ScheduleParserHelper.hpp:109
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::operating_leg_details
boost::spirit::classic::rule< ScannerT > operating_leg_details
Definition: ScheduleParserHelper.hpp:294
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::segment_cabin_details
boost::spirit::classic::rule< ScannerT > segment_cabin_details
Definition: ScheduleParserHelper.hpp:296
AIRTSP::ScheduleParserHelper::storeOperatingFlightNumber::storeOperatingFlightNumber
storeOperatingFlightNumber(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:179
AIRTSP::ScheduleParserHelper::storeCapacity
Definition: ScheduleParserHelper.hpp:141
AIRTSP::ScheduleParserHelper::storeLegBoardingPoint::storeLegBoardingPoint
storeLegBoardingPoint(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:117
AIRTSP::ScheduleParserHelper::storeBoardingTime::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:196
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::family_cabin_details
boost::spirit::classic::rule< ScannerT > family_cabin_details
Definition: ScheduleParserHelper.hpp:297
AIRTSP::FlightPeriodFileParser
Definition: ScheduleParserHelper.hpp:323
AIRTSP::ScheduleParserHelper::storeFamilyCode
Definition: ScheduleParserHelper.hpp:192
AIRTSP::ScheduleParserHelper::storeAirlineCode::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:37
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::time
boost::spirit::classic::rule< ScannerT > time
Definition: ScheduleParserHelper.hpp:293
AIRTSP::ScheduleParserHelper::storeCapacity::operator()
void operator()(double iReal) const
Definition: ScheduleParserHelper.cpp:268
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::leg_cabin_details
boost::spirit::classic::rule< ScannerT > leg_cabin_details
Definition: ScheduleParserHelper.hpp:294
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::segment_section
boost::spirit::classic::rule< ScannerT > segment_section
Definition: ScheduleParserHelper.hpp:295
AIRTSP::ScheduleParserHelper::storeCapacity::storeCapacity
storeCapacity(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:263
AIRTSP::ScheduleParserHelper::storeOperatingAirlineCode::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:167
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::flight_key
boost::spirit::classic::rule< ScannerT > flight_key
Definition: ScheduleParserHelper.hpp:292
AIRTSP::ScheduleParserHelper::FlightPeriodParser::_flightPeriod
FlightPeriodStruct & _flightPeriod
Definition: ScheduleParserHelper.hpp:305
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::date
boost::spirit::classic::rule< ScannerT > date
Definition: ScheduleParserHelper.hpp:293
AIRTSP::ScheduleParserHelper::storeSegmentCabinCode
Definition: ScheduleParserHelper.hpp:176
AIRTSP::ScheduleParserHelper::storeLegBoardingPoint
Definition: ScheduleParserHelper.hpp:77
AIRTSP::ScheduleParserHelper::storeOffTime
Definition: ScheduleParserHelper.hpp:117
AIRTSP::ScheduleParserHelper::storeSegmentSpecificity::storeSegmentSpecificity
storeSegmentSpecificity(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:282
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::flight_period_end
boost::spirit::classic::rule< ScannerT > flight_period_end
Definition: ScheduleParserHelper.hpp:292
AIRTSP::ScheduleParserHelper::storeLegOffPoint::storeLegOffPoint
storeLegOffPoint(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:146
AIRTSP::ScheduleParserHelper::storeDow
Definition: ScheduleParserHelper.hpp:69
AIRTSP::ScheduleParserHelper::storeSegmentOffPoint::storeSegmentOffPoint
storeSegmentOffPoint(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:321
AIRTSP::ScheduleParserHelper::doEndFlight::doEndFlight
doEndFlight(stdair::BomRoot &, FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:440
AIRTSP::ScheduleParserHelper::storeFFDisutilityCurveKey::storeFFDisutilityCurveKey
storeFFDisutilityCurveKey(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:397
stdair
Forward declarations.
Definition: AIRTSP_Service.hpp:14
AIRTSP::ScheduleParserHelper::storeOffTime::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:214
AIRTSP::ScheduleParserHelper::storeFRAT5CurveKey::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:388
AIRTSP::ScheduleParserHelper::storeSegmentOffPoint::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:326
AIRTSP::ScheduleParserHelper::storeElapsedTime::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:235
AIRTSP::ScheduleParserHelper::storeDow::storeDow
storeDow(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:104
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::specific_segment_list
boost::spirit::classic::rule< ScannerT > specific_segment_list
Definition: ScheduleParserHelper.hpp:297
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::definition
definition(FlightPeriodParser const &self)
Definition: ScheduleParserHelper.cpp:542
AIRTSP::ScheduleParserHelper::storeSegmentCabinCode::storeSegmentCabinCode
storeSegmentCabinCode(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:334
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::date_offset
boost::spirit::classic::rule< ScannerT > date_offset
Definition: ScheduleParserHelper.hpp:293
AIRTSP::ScheduleParserHelper::storeSegmentBoardingPoint::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:313
AIRTSP::ScheduleParserHelper::storeFClasses
Definition: ScheduleParserHelper.hpp:216
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::start
boost::spirit::classic::rule< ScannerT > const & start() const
Definition: ScheduleParserHelper.cpp:701
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::leg_key
boost::spirit::classic::rule< ScannerT > leg_key
Definition: ScheduleParserHelper.hpp:294
AIRTSP::ScheduleParserHelper::storeFClasses::storeFClasses
storeFClasses(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:410
AIRTSP::ScheduleParserHelper::storeSegmentBoardingPoint
Definition: ScheduleParserHelper.hpp:160
AIRTSP::ScheduleParserHelper::ParserSemanticAction
Definition: ScheduleParserHelper.hpp:29
AIRTSP::ScheduleParserHelper::storeFFDisutilityCurveKey
Definition: ScheduleParserHelper.hpp:208
AIRTSP::ScheduleParserHelper::storeSegmentBoardingPoint::storeSegmentBoardingPoint
storeSegmentBoardingPoint(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:308
AIRTSP::ScheduleParserHelper::storeDateRangeEnd::storeDateRangeEnd
storeDateRangeEnd(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:77
AIRTSP::ScheduleParserHelper::storeAirlineCode
Definition: ScheduleParserHelper.hpp:37
AIRTSP::ScheduleParserHelper::storeSegmentOffPoint
Definition: ScheduleParserHelper.hpp:168
AIRTSP
Definition: AIRTSP_Service.hpp:23
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::not_to_be_parsed
boost::spirit::classic::rule< ScannerT > not_to_be_parsed
Definition: ScheduleParserHelper.hpp:292
AIRTSP::FlightPeriodStruct
Definition: FlightPeriodStruct.hpp:26
AIRTSP::ScheduleParserHelper::storeClasses::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:350
AIRTSP::ScheduleParserHelper::storeLegOffPoint::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:151
AIRTSP::ScheduleParserHelper::storeFFDisutilityCurveKey::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:402
AIRTSP::ScheduleParserHelper::storeLegOffPoint
Definition: ScheduleParserHelper.hpp:85
AIRTSP::ScheduleParserHelper::storeFamilyCode::storeFamilyCode
storeFamilyCode(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:370
AIRTSP::ScheduleParserHelper::ParserSemanticAction::_flightPeriod
FlightPeriodStruct & _flightPeriod
Definition: ScheduleParserHelper.hpp:33
AIRTSP::ScheduleParserHelper::storeDateRangeEnd
Definition: ScheduleParserHelper.hpp:61
AIRTSP::ScheduleParserHelper::storeSegmentSpecificity
Definition: ScheduleParserHelper.hpp:152
AIRTSP::ScheduleParserHelper::storeOffTime::storeOffTime
storeOffTime(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:209
AIRTSP::ScheduleParserHelper::storeDateRangeStart::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:67
AIRTSP::ScheduleParserHelper::storeFlightNumber::operator()
void operator()(unsigned int iNumber) const
Definition: ScheduleParserHelper.cpp:55
AIRTSP::ScheduleParserHelper::doEndFlight::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:448
BasParserTypes.hpp
AIRTSP::ScheduleParserHelper::storeSegmentSpecificity::operator()
void operator()(char iChar) const
Definition: ScheduleParserHelper.cpp:287
AIRTSP::ScheduleParserHelper::storeDateRangeStart
Definition: ScheduleParserHelper.hpp:53
AIRTSP::ScheduleParserHelper::storeFamilyCode::operator()
void operator()(int iCode) const
Definition: ScheduleParserHelper.cpp:375
FlightPeriodStruct.hpp
AIRTSP::ScheduleParserHelper::storeLegBoardingPoint::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:122
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::segment_key
boost::spirit::classic::rule< ScannerT > segment_key
Definition: ScheduleParserHelper.hpp:295
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::airline_code
boost::spirit::classic::rule< ScannerT > airline_code
Definition: ScheduleParserHelper.hpp:292
AIRTSP::ScheduleParserHelper::storeOperatingFlightNumber
Definition: ScheduleParserHelper.hpp:101
AIRTSP::ScheduleParserHelper::ParserSemanticAction::ParserSemanticAction
ParserSemanticAction(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:26
AIRTSP::ScheduleParserHelper::storeBoardingTime::storeBoardingTime
storeBoardingTime(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:191
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition
Definition: ScheduleParserHelper.hpp:287
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::flight_period_list
boost::spirit::classic::rule< ScannerT > flight_period_list
Definition: ScheduleParserHelper.hpp:291
AIRTSP::ScheduleParserHelper::storeElapsedTime
Definition: ScheduleParserHelper.hpp:125
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::dow
boost::spirit::classic::rule< ScannerT > dow
Definition: ScheduleParserHelper.hpp:293
AIRTSP::ScheduleParserHelper::storeClasses::storeClasses
storeClasses(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:345
AIRTSP::ScheduleParserHelper::storeOperatingFlightNumber::operator()
void operator()(unsigned int iNumber) const
Definition: ScheduleParserHelper.cpp:184
AIRTSP::FlightPeriodFileParser::FlightPeriodFileParser
FlightPeriodFileParser(stdair::BomRoot &ioBomRoot, const stdair::Filename_T &iFilename)
Definition: ScheduleParserHelper.cpp:716
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::flight_period
boost::spirit::classic::rule< ScannerT > flight_period
Definition: ScheduleParserHelper.hpp:291
AIRTSP::ScheduleParserHelper::storeLegCabinCode::storeLegCabinCode
storeLegCabinCode(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:251
AIRTSP::ScheduleParserHelper::storeOperatingAirlineCode
Definition: ScheduleParserHelper.hpp:93
AIRTSP::ScheduleParserHelper::storeClasses
Definition: ScheduleParserHelper.hpp:184
AIRTSP::ScheduleParserHelper::storeLegCabinCode::operator()
void operator()(char iChar) const
Definition: ScheduleParserHelper.cpp:256
AIRTSP::ScheduleParserHelper::storeFRAT5CurveKey
Definition: ScheduleParserHelper.hpp:200
AIRTSP::ScheduleParserHelper::doEndFlight::_bomRoot
stdair::BomRoot & _bomRoot
Definition: ScheduleParserHelper.hpp:230
AIRTSP::ScheduleParserHelper::FlightPeriodParser::_bomRoot
stdair::BomRoot & _bomRoot
Definition: ScheduleParserHelper.hpp:304
AIRTSP::ScheduleParserHelper::storeLegCabinCode
Definition: ScheduleParserHelper.hpp:133
AIRTSP::ScheduleParserHelper::storeFRAT5CurveKey::storeFRAT5CurveKey
storeFRAT5CurveKey(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:383
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::flight_number
boost::spirit::classic::rule< ScannerT > flight_number
Definition: ScheduleParserHelper.hpp:293
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::leg
boost::spirit::classic::rule< ScannerT > leg
Definition: ScheduleParserHelper.hpp:294
AIRTSP::ScheduleParserHelper::storeFClasses::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:415
AIRTSP::ScheduleParserHelper::storeDow::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:109
AIRTSP::FlightPeriodFileParser::generateInventories
bool generateInventories()
Definition: ScheduleParserHelper.cpp:753
AIRTSP::ScheduleParserHelper::FlightPeriodParser::definition::full_family_cabin_details
boost::spirit::classic::rule< ScannerT > full_family_cabin_details
Definition: ScheduleParserHelper.hpp:296
AIRTSP::ScheduleParserHelper::storeElapsedTime::storeElapsedTime
storeElapsedTime(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:230