1.01.17
C++ Simulated Airline Travel Solution Provider (TSP) Library
Toggle main menu visibility
Loading...
Searching...
No Matches
OnDParserHelper.hpp
Go to the documentation of this file.
1
#ifndef __AIRTSP_CMD_ONDPARSERHELPER_HPP
2
#define __AIRTSP_CMD_ONDPARSERHELPER_HPP
3
4
// //////////////////////////////////////////////////////////////////////
5
// Import section
6
// //////////////////////////////////////////////////////////////////////
7
// STL
8
#include <string>
9
// Boost (Extended STL)
10
#include <boost/date_time/posix_time/posix_time.hpp>
11
#include <boost/date_time/gregorian/gregorian.hpp>
12
// StdAir
13
#include <stdair/command/CmdAbstract.hpp>
14
// AirTSP
15
#include <
airtsp/AIRTSP_Types.hpp
>
16
#include <
airtsp/basic/BasParserTypes.hpp
>
17
#include <
airtsp/bom/OnDPeriodStruct.hpp
>
18
19
// Forward declarations
20
namespace
stdair
{
21
class
BomRoot;
22
}
23
24
namespace
AIRTSP
{
25
26
namespace
OnDParserHelper
{
27
28
// ///////////////////////////////////////////////////////////////////////
29
//
30
// Semantic actions
31
//
32
// ///////////////////////////////////////////////////////////////////////
34
struct
ParserSemanticAction
{
36
ParserSemanticAction
(
OnDPeriodStruct
&);
38
OnDPeriodStruct
&
_onDPeriod
;
39
};
40
42
struct
storeOrigin
:
public
ParserSemanticAction
{
44
storeOrigin
(
OnDPeriodStruct
&);
46
void
operator()
(
iterator_t
iStr,
iterator_t
iStrEnd)
const
;
47
};
48
50
struct
storeDestination
:
public
ParserSemanticAction
{
52
storeDestination
(
OnDPeriodStruct
&);
54
void
operator()
(
iterator_t
iStr,
iterator_t
iStrEnd)
const
;
55
};
56
58
struct
storeDateRangeStart
:
public
ParserSemanticAction
{
60
storeDateRangeStart
(
OnDPeriodStruct
&);
62
void
operator()
(
iterator_t
iStr,
iterator_t
iStrEnd)
const
;
63
};
64
66
struct
storeDateRangeEnd
:
public
ParserSemanticAction
{
68
storeDateRangeEnd
(
OnDPeriodStruct
&);
70
void
operator()
(
iterator_t
iStr,
iterator_t
iStrEnd)
const
;
71
};
72
74
struct
storeStartRangeTime
:
public
ParserSemanticAction
{
76
storeStartRangeTime
(
OnDPeriodStruct
&);
78
void
operator()
(
iterator_t
iStr,
iterator_t
iStrEnd)
const
;
79
};
80
82
struct
storeEndRangeTime
:
public
ParserSemanticAction
{
84
storeEndRangeTime
(
OnDPeriodStruct
&);
86
void
operator()
(
iterator_t
iStr,
iterator_t
iStrEnd)
const
;
87
};
88
90
struct
storeAirlineCode
:
public
ParserSemanticAction
{
92
storeAirlineCode
(
OnDPeriodStruct
&);
94
void
operator()
(
iterator_t
iStr,
iterator_t
iStrEnd)
const
;
95
};
96
98
struct
storeClassCode
:
public
ParserSemanticAction
{
100
storeClassCode
(
OnDPeriodStruct
&);
102
void
operator()
(
char
iChar)
const
;
103
};
104
106
struct
doEndOnD
:
public
ParserSemanticAction
{
108
doEndOnD
(stdair::BomRoot&,
OnDPeriodStruct
&);
110
void
operator()
(
iterator_t
iStr,
iterator_t
iStrEnd)
const
;
112
stdair::BomRoot&
_bomRoot
;
113
};
114
116
//
117
// (Boost Spirit) Grammar Definition
118
//
120
125
127
struct
OnDParser
:
128
public
boost::spirit::classic::grammar<OnDParser> {
129
130
OnDParser
(stdair::BomRoot&,
OnDPeriodStruct
&);
131
132
template
<
typename
ScannerT>
133
struct
definition
{
134
definition
(
OnDParser
const
& self);
135
136
// Instantiation of rules
137
boost::spirit::classic::rule<ScannerT>
ond_list
,
ond
,
segment
,
138
ond_key
,
ond_end
,
date
,
time
;
139
141
boost::spirit::classic::rule<ScannerT>
const
&
start
()
const
;
142
};
143
144
// Parser Context
145
stdair::BomRoot&
_bomRoot
;
146
OnDPeriodStruct
&
_onDPeriod
;
147
};
148
}
149
151
//
152
// Entry class for the file parser
153
//
155
160
161
class
OnDPeriodFileParser
:
public
stdair::CmdAbstract {
162
public
:
164
OnDPeriodFileParser
(
const
stdair::Filename_T& iFilename,
165
stdair::BomRoot& ioBomRoot);
166
168
bool
generateOnDPeriods
();
169
170
private
:
172
void
init();
173
174
private
:
175
// Attributes
177
stdair::Filename_T _filename;
178
180
iterator_t
_startIterator;
181
183
iterator_t
_endIterator;
184
186
stdair::BomRoot& _bomRoot;
187
189
OnDPeriodStruct
_onDPeriod;
190
};
191
192
}
193
#endif
// __AIRTSP_CMD_ONDPARSERHELPER_HPP
AIRTSP_Types.hpp
BasParserTypes.hpp
OnDPeriodStruct.hpp
AIRTSP::OnDPeriodFileParser::OnDPeriodFileParser
OnDPeriodFileParser(const stdair::Filename_T &iFilename, stdair::BomRoot &ioBomRoot)
Definition
OnDParserHelper.cpp:342
AIRTSP::OnDPeriodFileParser::generateOnDPeriods
bool generateOnDPeriods()
Definition
OnDParserHelper.cpp:378
AIRTSP::OnDParserHelper
Definition
OnDParserHelper.cpp:16
AIRTSP
Definition
AIRTSP_Service.hpp:23
AIRTSP::iterator_t
boost::spirit::classic::file_iterator< char_t > iterator_t
Definition
BasParserTypes.hpp:35
stdair
Forward declarations.
Definition
AIRTSP_Service.hpp:14
AIRTSP::OnDParserHelper::OnDParser::definition::ond_list
boost::spirit::classic::rule< ScannerT > ond_list
Definition
OnDParserHelper.hpp:137
AIRTSP::OnDParserHelper::OnDParser::definition::definition
definition(OnDParser const &self)
Definition
OnDParserHelper.cpp:267
AIRTSP::OnDParserHelper::OnDParser::definition::date
boost::spirit::classic::rule< ScannerT > date
Definition
OnDParserHelper.hpp:138
AIRTSP::OnDParserHelper::OnDParser::definition::time
boost::spirit::classic::rule< ScannerT > time
Definition
OnDParserHelper.hpp:138
AIRTSP::OnDParserHelper::OnDParser::definition::ond_end
boost::spirit::classic::rule< ScannerT > ond_end
Definition
OnDParserHelper.hpp:138
AIRTSP::OnDParserHelper::OnDParser::definition::start
boost::spirit::classic::rule< ScannerT > const & start() const
Definition
OnDParserHelper.cpp:330
AIRTSP::OnDParserHelper::OnDParser::definition::ond
boost::spirit::classic::rule< ScannerT > ond
Definition
OnDParserHelper.hpp:137
AIRTSP::OnDParserHelper::OnDParser::definition::ond_key
boost::spirit::classic::rule< ScannerT > ond_key
Definition
OnDParserHelper.hpp:138
AIRTSP::OnDParserHelper::OnDParser::definition::segment
boost::spirit::classic::rule< ScannerT > segment
Definition
OnDParserHelper.hpp:137
AIRTSP::OnDParserHelper::OnDParser::_bomRoot
stdair::BomRoot & _bomRoot
Definition
OnDParserHelper.hpp:145
AIRTSP::OnDParserHelper::OnDParser::_onDPeriod
OnDPeriodStruct & _onDPeriod
Definition
OnDParserHelper.hpp:146
AIRTSP::OnDParserHelper::OnDParser::OnDParser
OnDParser(stdair::BomRoot &, OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:261
AIRTSP::OnDParserHelper::ParserSemanticAction::_onDPeriod
OnDPeriodStruct & _onDPeriod
Definition
OnDParserHelper.hpp:38
AIRTSP::OnDParserHelper::ParserSemanticAction::ParserSemanticAction
ParserSemanticAction(OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:25
AIRTSP::OnDParserHelper::doEndOnD::doEndOnD
doEndOnD(stdair::BomRoot &, OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:193
AIRTSP::OnDParserHelper::doEndOnD::_bomRoot
stdair::BomRoot & _bomRoot
Definition
OnDParserHelper.hpp:112
AIRTSP::OnDParserHelper::doEndOnD::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition
OnDParserHelper.cpp:199
AIRTSP::OnDParserHelper::storeAirlineCode::storeAirlineCode
storeAirlineCode(OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:139
AIRTSP::OnDParserHelper::storeAirlineCode::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition
OnDParserHelper.cpp:144
AIRTSP::OnDParserHelper::storeClassCode::storeClassCode
storeClassCode(OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:172
AIRTSP::OnDParserHelper::storeClassCode::operator()
void operator()(char iChar) const
Definition
OnDParserHelper.cpp:177
AIRTSP::OnDParserHelper::storeDateRangeEnd::storeDateRangeEnd
storeDateRangeEnd(OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:83
AIRTSP::OnDParserHelper::storeDateRangeEnd::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition
OnDParserHelper.cpp:88
AIRTSP::OnDParserHelper::storeDateRangeStart::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition
OnDParserHelper.cpp:71
AIRTSP::OnDParserHelper::storeDateRangeStart::storeDateRangeStart
storeDateRangeStart(OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:66
AIRTSP::OnDParserHelper::storeDestination::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition
OnDParserHelper.cpp:55
AIRTSP::OnDParserHelper::storeDestination::storeDestination
storeDestination(OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:50
AIRTSP::OnDParserHelper::storeEndRangeTime::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition
OnDParserHelper.cpp:129
AIRTSP::OnDParserHelper::storeEndRangeTime::storeEndRangeTime
storeEndRangeTime(OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:124
AIRTSP::OnDParserHelper::storeOrigin::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition
OnDParserHelper.cpp:35
AIRTSP::OnDParserHelper::storeOrigin::storeOrigin
storeOrigin(OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:30
AIRTSP::OnDParserHelper::storeStartRangeTime::storeStartRangeTime
storeStartRangeTime(OnDPeriodStruct &)
Definition
OnDParserHelper.cpp:109
AIRTSP::OnDParserHelper::storeStartRangeTime::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition
OnDParserHelper.cpp:114
AIRTSP::OnDPeriodStruct
Definition
OnDPeriodStruct.hpp:16
Generated on
for AirTSP by
1.17.0