0.08.01
C++ Open Travel Request Parsing Library
Toggle main menu visibility
Loading...
Searching...
No Matches
OPENTREP_ParserHelperTypes.hpp
Go to the documentation of this file.
1
#ifndef __OPENTREP_PARSERHELPERTYPES_HPP
2
#define __OPENTREP_PARSERHELPERTYPES_HPP
3
4
// //////////////////////////////////////////////////////////////////////
5
// Import section
6
// //////////////////////////////////////////////////////////////////////
7
// STL
8
#include <string>
9
#include <sstream>
10
// OpenTREP
11
#include <
opentrep/OPENTREP_exceptions.hpp
>
12
13
namespace
OPENTREP
{
14
15
// ////////////////////////////////////////////////////////////////////
16
//
17
// Parser structure helper
18
//
19
// ////////////////////////////////////////////////////////////////////
21
template
<
int
MIN = 0,
int
MAX = 0>
22
struct
date_time_element
{
23
unsigned
int
_value
;
24
25
// ////////// Constructors ///////////
27
date_time_element
() :
_value
(0) { }
29
date_time_element
(
const
date_time_element
& t) :
_value
(t.
_value
) { }
31
date_time_element
(
int
i) :
_value
(i) { }
33
void
check
()
const
{
34
if
(
_value < MIN || _value >
MAX) {
35
std::ostringstream oMessage;
36
oMessage <<
"The value: "
<<
_value
<<
" is out of range ("
37
<< MIN <<
", "
<< MAX <<
")"
;
38
throw
OPENTREP::ParserException
(oMessage.str());
39
}
40
}
41
};
42
44
template
<
int
MIN,
int
MAX>
45
inline
date_time_element<MIN,
46
MAX>
operator*
(
const
date_time_element<MIN, MAX>
& o1,
47
const
date_time_element<MIN, MAX>
& o2){
48
return
date_time_element<MIN, MAX>
(o1.
_value
* o2.
_value
);
49
}
50
52
template
<
int
MIN,
int
MAX>
53
inline
date_time_element<MIN,
54
MAX>
operator+
(
const
date_time_element<MIN, MAX>
& o1,
55
const
date_time_element<MIN, MAX>
& o2){
56
return
date_time_element<MIN, MAX>
(o1.
_value
+ o2.
_value
);
57
}
58
60
typedef
date_time_element<0, 23>
hour_t
;
61
typedef
date_time_element<0, 59>
minute_t
;
62
typedef
date_time_element<0, 59>
second_t
;
63
typedef
date_time_element<1900, 2100>
year_t
;
64
typedef
date_time_element<1, 12>
month_t
;
65
typedef
date_time_element<1, 31>
day_t
;
66
67
}
68
#endif
// __OPENTREP_PARSERHELPERTYPES_HPP
OPENTREP_exceptions.hpp
OPENTREP::ParserException
Definition
OPENTREP_exceptions.hpp:191
OPENTREP
Definition
BasChronometer.cpp:10
OPENTREP::day_t
date_time_element< 1, 31 > day_t
Definition
OPENTREP_ParserHelperTypes.hpp:65
OPENTREP::month_t
date_time_element< 1, 12 > month_t
Definition
OPENTREP_ParserHelperTypes.hpp:64
OPENTREP::operator*
date_time_element< MIN, MAX > operator*(const date_time_element< MIN, MAX > &o1, const date_time_element< MIN, MAX > &o2)
Definition
OPENTREP_ParserHelperTypes.hpp:46
OPENTREP::hour_t
date_time_element< 0, 23 > hour_t
Definition
OPENTREP_ParserHelperTypes.hpp:60
OPENTREP::second_t
date_time_element< 0, 59 > second_t
Definition
OPENTREP_ParserHelperTypes.hpp:62
OPENTREP::minute_t
date_time_element< 0, 59 > minute_t
Definition
OPENTREP_ParserHelperTypes.hpp:61
OPENTREP::operator+
date_time_element< MIN, MAX > operator+(const date_time_element< MIN, MAX > &o1, const date_time_element< MIN, MAX > &o2)
Definition
OPENTREP_ParserHelperTypes.hpp:54
OPENTREP::year_t
date_time_element< 1900, 2100 > year_t
Definition
OPENTREP_ParserHelperTypes.hpp:63
OPENTREP::date_time_element
Definition
OPENTREP_ParserHelperTypes.hpp:22
OPENTREP::date_time_element::date_time_element
date_time_element(int i)
Definition
OPENTREP_ParserHelperTypes.hpp:31
OPENTREP::date_time_element::date_time_element
date_time_element()
Definition
OPENTREP_ParserHelperTypes.hpp:27
OPENTREP::date_time_element< 0, 23 >::_value
unsigned int _value
Definition
OPENTREP_ParserHelperTypes.hpp:23
OPENTREP::date_time_element::check
void check() const
Definition
OPENTREP_ParserHelperTypes.hpp:33
OPENTREP::date_time_element::date_time_element
date_time_element(const date_time_element &t)
Definition
OPENTREP_ParserHelperTypes.hpp:29
Generated on
for OpenTREP by
1.17.0