StdAir Logo  1.00.10
C++ Standard Airline IT Object Library
BasParserHelperTypes.hpp
Go to the documentation of this file.
1 #ifndef __STDAIR_BAS_BASCOMPARSERHELPERTYPES_HPP
2 #define __STDAIR_BAS_BASCOMPARSERHELPERTYPES_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 #include <sstream>
10 // StdAir
13 
14 namespace stdair {
15 
16  // ////////////////////////////////////////////////////////////////////
17  //
18  // Parser structure helper
19  //
20  // ////////////////////////////////////////////////////////////////////
22  template <int MIN = 0, int MAX = 0>
24  unsigned int _value;
25 
26  // ////////// Constructors ///////////
32  date_time_element (int i) : _value (i) { }
34  void check () const {
35  if (_value < MIN || _value > MAX) {
36  std::ostringstream oMessage;
37  oMessage << "The value: " << _value << " is out of range ("
38  << MIN << ", " << MAX << ")";
39  throw stdair::ParserException (oMessage.str());
40  }
41  }
42  };
43 
45  template <int MIN, int MAX>
46  inline date_time_element<MIN,
48  const date_time_element<MIN, MAX>& o2){
49  return date_time_element<MIN, MAX> (o1._value * o2._value);
50  }
51 
53  template <int MIN, int MAX>
54  inline date_time_element<MIN,
56  const date_time_element<MIN, MAX>& o2){
57  return date_time_element<MIN, MAX> (o1._value + o2._value);
58  }
59 
67 
68 }
69 #endif // __STDAIR_BAS_BASCOMPARSERHELPERTYPES_HPP
stdair::day_t
date_time_element< 1, 31 > day_t
Definition: BasParserHelperTypes.hpp:66
stdair_exceptions.hpp
stdair::month_t
date_time_element< 1, 12 > month_t
Definition: BasParserHelperTypes.hpp:65
stdair::operator*
date_time_element< MIN, MAX > operator*(const date_time_element< MIN, MAX > &o1, const date_time_element< MIN, MAX > &o2)
Definition: BasParserHelperTypes.hpp:47
Logger.hpp
stdair::minute_t
date_time_element< 0, 59 > minute_t
Definition: BasParserHelperTypes.hpp:62
stdair
Handle on the StdAir library context.
Definition: BasChronometer.cpp:9
stdair::hour_t
date_time_element< 0, 23 > hour_t
Definition: BasParserHelperTypes.hpp:61
stdair::date_time_element::date_time_element
date_time_element(int i)
Definition: BasParserHelperTypes.hpp:32
stdair::date_time_element::date_time_element
date_time_element()
Definition: BasParserHelperTypes.hpp:28
stdair::date_time_element::date_time_element
date_time_element(const date_time_element &t)
Definition: BasParserHelperTypes.hpp:30
stdair::year_t
date_time_element< 1900, 2100 > year_t
Definition: BasParserHelperTypes.hpp:64
stdair::date_time_element::_value
unsigned int _value
Definition: BasParserHelperTypes.hpp:24
stdair::date_time_element
Definition: BasParserHelperTypes.hpp:23
stdair::second_t
date_time_element< 0, 59 > second_t
Definition: BasParserHelperTypes.hpp:63
stdair::operator+
date_time_element< MIN, MAX > operator+(const date_time_element< MIN, MAX > &o1, const date_time_element< MIN, MAX > &o2)
Definition: BasParserHelperTypes.hpp:55
stdair::date_time_element::check
void check() const
Definition: BasParserHelperTypes.hpp:34
stdair::ParserException
Definition: stdair_exceptions.hpp:112