1.01.17
C++ Simulated Airline Travel Solution Provider (TSP) Library
Toggle main menu visibility
Loading...
Searching...
No Matches
BookingRequestParser.hpp
Go to the documentation of this file.
1
// //////////////////////////////////////////////////////////////////////
2
// Import section
3
// //////////////////////////////////////////////////////////////////////
4
// STL
5
#include <string>
6
#include <vector>
7
8
namespace
airtsp
{
9
11
struct
Place_T
{
12
// Attributes
13
std::string
_name
;
14
std::string
_code
;
16
Place_T
() :
_name
(
""
),
_code
(
""
) {}
17
/* Display. */
18
void
display
()
const
{
19
std::cout <<
"Place: "
<<
_name
<<
" ("
<<
_code
<<
")"
<< std::endl;
20
}
21
};
22
24
typedef
std::vector<Place_T>
PlaceList_T
;
25
27
struct
Date_T
{
28
// Attributes
29
boost::gregorian::date
_date
;
30
unsigned
int
_reldays
;
31
unsigned
int
_day
;
32
unsigned
int
_month
;
33
unsigned
int
_year
;
35
Date_T
() :
_reldays
(14),
_day
(1),
_month
(1),
_year
(1970) {}
36
/* Display. */
37
void
display
()
const
{
38
std::cout <<
"Date: "
<<
_date
<<
" ("
<<
_day
<<
"/"
<<
_month
39
<<
"/"
<<
_year
<<
"), i.e. in "
<<
_reldays
<<
" days"
40
<< std::endl;
41
}
42
43
boost::gregorian::date
getDate
()
const
{
44
return
boost::gregorian::date (
_year
,
_month
,
_day
);
45
}
46
};
47
49
typedef
std::vector<Date_T>
DateList_T
;
50
52
struct
Airline_T
{
53
// Attributes
54
bool
_isPreferred
;
55
std::string
_name
;
56
std::string
_code
;
58
Airline_T
() :
_isPreferred
(true),
_name
(
""
),
_code
(
""
) {}
59
/* Display. */
60
void
display
()
const
{
61
const
std::string isPreferredStr = (
_isPreferred
)?
"+"
:
"-"
;
62
std::cout <<
"Airline: "
<< isPreferredStr <<
_name
<<
" ("
<<
_code
<<
")"
63
<< std::endl;
64
}
65
};
66
68
typedef
std::vector<Airline_T>
AirlineList_T
;
69
71
struct
Passenger_T
{
72
// Attributes
73
typedef
enum
{
ADULT
= 0,
CHILD
,
PET
,
LAST_VALUE
} PassengerType_T;
74
static
const
std::string
_labels
[
LAST_VALUE
];
75
PassengerType_T
_type
;
76
unsigned
short
_number
;
78
Passenger_T
() :
_type
(
ADULT
),
_number
(1) {}
79
/* Display. */
80
void
display
()
const
{
81
std::cout <<
"Passenger: "
<<
_number
<<
" ("
<<
_labels
[
_type
] <<
")"
82
<< std::endl;
83
}
84
};
85
87
const
std::string
Passenger_T::_labels
[
Passenger_T::LAST_VALUE
] =
88
{
"Adult"
,
"Child"
,
"Pet"
};
89
91
typedef
std::vector<Passenger_T>
PassengerList_T
;
92
94
struct
SearchString_T
{
95
// Attributes
96
PlaceList_T
_placeList
;
97
DateList_T
_dateList
;
98
AirlineList_T
_airlineList
;
99
PassengerList_T
_passengerList
;
100
102
SearchString_T
() {}
103
104
/* Display. */
105
void
display
()
const
{
106
std::cout << std::endl;
107
108
for
(PlaceList_T::const_iterator itPlace =
_placeList
.begin();
109
itPlace !=
_placeList
.end(); ++itPlace) {
110
const
Place_T
& lPlace = *itPlace;
111
lPlace.
display
();
112
}
113
114
for
(DateList_T::const_iterator itDate =
_dateList
.begin();
115
itDate !=
_dateList
.end(); ++itDate) {
116
const
Date_T
& lDate = *itDate;
117
lDate.
display
();
118
}
119
120
for
(AirlineList_T::const_iterator itAirline =
_airlineList
.begin();
121
itAirline !=
_airlineList
.end(); ++itAirline) {
122
const
Airline_T
& lAirline = *itAirline;
123
lAirline.
display
();
124
}
125
126
for
(PassengerList_T::const_iterator itPassenger =
_passengerList
.begin();
127
itPassenger !=
_passengerList
.end(); ++itPassenger) {
128
const
Passenger_T
& lPassenger = *itPassenger;
129
lPassenger.
display
();
130
}
131
132
std::cout <<
"-- Staging --"
<< std::endl;
133
_tmpPlace
.display();
134
}
135
136
// //// Staging ////
137
Place_T
_tmpPlace
;
138
Date_T
_tmpDate
;
139
Airline_T
_tmpAirline
;
140
Passenger_T
_tmpPassenger
;
141
};
142
144
//
145
// The booking request grammar (using subrules)
146
//
148
174
SearchString_T
parseBookingRequest
(
const
std::string& iSearchString);
175
176
}
airtsp
Definition
BookingRequestParser.cpp:34
airtsp::AirlineList_T
std::vector< Airline_T > AirlineList_T
Definition
BookingRequestParser.hpp:68
airtsp::DateList_T
std::vector< Date_T > DateList_T
Definition
BookingRequestParser.hpp:49
airtsp::parseBookingRequest
SearchString_T parseBookingRequest(const std::string &iSearchString)
Definition
BookingRequestParser.cpp:373
airtsp::PassengerList_T
std::vector< Passenger_T > PassengerList_T
Definition
BookingRequestParser.hpp:91
airtsp::PlaceList_T
std::vector< Place_T > PlaceList_T
Definition
BookingRequestParser.hpp:24
airtsp::Airline_T
Definition
BookingRequestParser.hpp:52
airtsp::Airline_T::Airline_T
Airline_T()
Definition
BookingRequestParser.hpp:58
airtsp::Airline_T::display
void display() const
Definition
BookingRequestParser.hpp:60
airtsp::Airline_T::_isPreferred
bool _isPreferred
Definition
BookingRequestParser.hpp:54
airtsp::Airline_T::_name
std::string _name
Definition
BookingRequestParser.hpp:55
airtsp::Airline_T::_code
std::string _code
Definition
BookingRequestParser.hpp:56
airtsp::Date_T
Definition
BookingRequestParser.hpp:27
airtsp::Date_T::getDate
boost::gregorian::date getDate() const
Definition
BookingRequestParser.hpp:43
airtsp::Date_T::_reldays
unsigned int _reldays
Definition
BookingRequestParser.hpp:30
airtsp::Date_T::_month
unsigned int _month
Definition
BookingRequestParser.hpp:32
airtsp::Date_T::_date
boost::gregorian::date _date
Definition
BookingRequestParser.hpp:29
airtsp::Date_T::_year
unsigned int _year
Definition
BookingRequestParser.hpp:33
airtsp::Date_T::_day
unsigned int _day
Definition
BookingRequestParser.hpp:31
airtsp::Date_T::Date_T
Date_T()
Definition
BookingRequestParser.hpp:35
airtsp::Date_T::display
void display() const
Definition
BookingRequestParser.hpp:37
airtsp::Passenger_T
Definition
BookingRequestParser.hpp:71
airtsp::Passenger_T::_type
PassengerType_T _type
Definition
BookingRequestParser.hpp:75
airtsp::Passenger_T::_number
unsigned short _number
Definition
BookingRequestParser.hpp:76
airtsp::Passenger_T::PassengerType_T
PassengerType_T
Definition
BookingRequestParser.hpp:73
airtsp::Passenger_T::LAST_VALUE
@ LAST_VALUE
Definition
BookingRequestParser.hpp:73
airtsp::Passenger_T::ADULT
@ ADULT
Definition
BookingRequestParser.hpp:73
airtsp::Passenger_T::PET
@ PET
Definition
BookingRequestParser.hpp:73
airtsp::Passenger_T::CHILD
@ CHILD
Definition
BookingRequestParser.hpp:73
airtsp::Passenger_T::_labels
static const std::string _labels[LAST_VALUE]
Definition
BookingRequestParser.hpp:74
airtsp::Passenger_T::Passenger_T
Passenger_T()
Definition
BookingRequestParser.hpp:78
airtsp::Passenger_T::display
void display() const
Definition
BookingRequestParser.hpp:80
airtsp::Place_T
Definition
BookingRequestParser.hpp:11
airtsp::Place_T::_code
std::string _code
Definition
BookingRequestParser.hpp:14
airtsp::Place_T::_name
std::string _name
Definition
BookingRequestParser.hpp:13
airtsp::Place_T::Place_T
Place_T()
Definition
BookingRequestParser.hpp:16
airtsp::Place_T::display
void display() const
Definition
BookingRequestParser.hpp:18
airtsp::SearchString_T
Definition
BookingRequestParser.hpp:94
airtsp::SearchString_T::_placeList
PlaceList_T _placeList
Definition
BookingRequestParser.hpp:96
airtsp::SearchString_T::_tmpAirline
Airline_T _tmpAirline
Definition
BookingRequestParser.hpp:139
airtsp::SearchString_T::_tmpPassenger
Passenger_T _tmpPassenger
Definition
BookingRequestParser.hpp:140
airtsp::SearchString_T::_dateList
DateList_T _dateList
Definition
BookingRequestParser.hpp:97
airtsp::SearchString_T::_tmpDate
Date_T _tmpDate
Definition
BookingRequestParser.hpp:138
airtsp::SearchString_T::_passengerList
PassengerList_T _passengerList
Definition
BookingRequestParser.hpp:99
airtsp::SearchString_T::SearchString_T
SearchString_T()
Definition
BookingRequestParser.hpp:102
airtsp::SearchString_T::_airlineList
AirlineList_T _airlineList
Definition
BookingRequestParser.hpp:98
airtsp::SearchString_T::_tmpPlace
Place_T _tmpPlace
Definition
BookingRequestParser.hpp:137
airtsp::SearchString_T::display
void display() const
Definition
BookingRequestParser.hpp:105
Generated on
for AirTSP by
1.17.0