OPeNDAP Hyrax Back End Server (BES)  Updated for version 3.8.3
SimpleTimeParser.h
Go to the documentation of this file.
1 // This file is part of the "NcML Module" project, a BES module designed
3 // to allow NcML files to be used to be used as a wrapper to add
4 // AIS to existing datasets of any format.
5 //
6 // Copyright (c) 2009 OPeNDAP, Inc.
7 // Author: Michael Johnson <m.johnson@opendap.org>
8 //
9 // For more information, please also see the main website: http://opendap.org/
10 //
11 // This library is free software; you can redistribute it and/or
12 // modify it under the terms of the GNU Lesser General Public
13 // License as published by the Free Software Foundation; either
14 // version 2.1 of the License, or (at your option) any later version.
15 //
16 // This library is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 // Lesser General Public License for more details.
20 //
21 // You should have received a copy of the GNU Lesser General Public
22 // License along with this library; if not, write to the Free Software
23 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24 //
25 // Please see the files COPYING and COPYRIGHT for more information on the GLPL.
26 //
27 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
29 
30 #ifndef __AGG_UTIL__SIMPLE_TIME_PARSER_H__
31 #define __AGG_UTIL__SIMPLE_TIME_PARSER_H__
32 
33 #include <map>
34 #include <string>
35 
36 namespace agg_util
37 {
38 
75  {
76  public:
79 
89  static bool parseIntoSeconds(long& seconds, const std::string& duration);
90 
91  private:
92 
94  static void initParseTable();
95 
96  // Constants for use in the table.
97  static const long _sSecsInMin;
98  static const long _sSecsInHour;
99  static const long _sSecsInDay;
100  static const long _sSecsInWeek;
101  static const long _sSecsInMonth; // we use 31 days to calc this one
102  static const long _sSecsInYear; // and 365 days this one
103 
104  static std::map< std::string, long > _sParseTable; // Map from units string to secs
105  static bool _sInited; // has the table been created yet?
106  };
107 
108 }
109 
110 #endif /* __AGG_UTIL__SIMPLE_TIME_PARSER_H__ */
Helper class for temporarily hijacking an existing dhi to load a DDX response for one particular file...
static bool parseIntoSeconds(long &seconds, const std::string &duration)
Parse the string in duration and to calculate the (approximate) number of seconds it represents...
Helper class to parse in very simple string specifications of times and return it as an (approximate)...