OpenTREP Logo  0.07.7
C++ Open Travel Request Parsing Library
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
12 
13 namespace OPENTREP {
14 
15  // ////////////////////////////////////////////////////////////////////
16  //
17  // Parser structure helper
18  //
19  // ////////////////////////////////////////////////////////////////////
21  template <int MIN = 0, int MAX = 0>
23  unsigned int _value;
24 
25  // ////////// Constructors ///////////
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,
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,
55  const date_time_element<MIN, MAX>& o2){
56  return date_time_element<MIN, MAX> (o1._value + o2._value);
57  }
58 
66 
67 }
68 #endif // __OPENTREP_PARSERHELPERTYPES_HPP
OPENTREP::date_time_element::date_time_element
date_time_element()
Definition: OPENTREP_ParserHelperTypes.hpp:27
OPENTREP::minute_t
date_time_element< 0, 59 > minute_t
Definition: OPENTREP_ParserHelperTypes.hpp:61
OPENTREP::hour_t
date_time_element< 0, 23 > hour_t
Definition: OPENTREP_ParserHelperTypes.hpp:60
OPENTREP::year_t
date_time_element< 1900, 2100 > year_t
Definition: OPENTREP_ParserHelperTypes.hpp:63
OPENTREP::day_t
date_time_element< 1, 31 > day_t
Definition: OPENTREP_ParserHelperTypes.hpp:65
OPENTREP::date_time_element
Definition: OPENTREP_ParserHelperTypes.hpp:22
OPENTREP::second_t
date_time_element< 0, 59 > second_t
Definition: OPENTREP_ParserHelperTypes.hpp:62
OPENTREP
Definition: BasChronometer.cpp:10
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::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_exceptions.hpp
OPENTREP::date_time_element::date_time_element
date_time_element(const date_time_element &t)
Definition: OPENTREP_ParserHelperTypes.hpp:29
OPENTREP::date_time_element::date_time_element
date_time_element(int i)
Definition: OPENTREP_ParserHelperTypes.hpp:31
OPENTREP::date_time_element::check
void check() const
Definition: OPENTREP_ParserHelperTypes.hpp:33
OPENTREP::ParserException
Definition: OPENTREP_exceptions.hpp:191
OPENTREP::month_t
date_time_element< 1, 12 > month_t
Definition: OPENTREP_ParserHelperTypes.hpp:64
OPENTREP::date_time_element::_value
unsigned int _value
Definition: OPENTREP_ParserHelperTypes.hpp:23