1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2 * contributor license agreements. See the NOTICE file distributed with
3 * this work for additional information regarding copyright ownership.
4 * The ASF licenses this file to You under the Apache License, Version 2.0
5 * (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef mod_md_md_time_h
18 #define mod_md_md_time_h
22 #define MD_SECS_PER_HOUR (60*60)
23 #define MD_SECS_PER_DAY (24*MD_SECS_PER_HOUR)
30 apr_time_t md_timeperiod_length(const md_timeperiod_t *period);
32 int md_timeperiod_contains(const md_timeperiod_t *period, apr_time_t time);
33 int md_timeperiod_has_started(const md_timeperiod_t *period, apr_time_t time);
34 int md_timeperiod_has_ended(const md_timeperiod_t *period, apr_time_t time);
36 char *md_timeperiod_print(apr_pool_t *p, const md_timeperiod_t *period);
39 * Print a human readable form of the give duration in days/hours/min/sec
41 const char *md_duration_print(apr_pool_t *p, apr_interval_time_t duration);
44 * Parse a machine readable string duration in the form of NN[unit], where
45 * unit is d/h/mi/s/ms with the default given should the unit not be specified.
47 apr_status_t md_duration_parse(apr_interval_time_t *ptimeout, const char *value,
48 const char *def_unit);
51 apr_interval_time_t norm; /* if > 0, normalized base length */
52 apr_interval_time_t len; /* length of the timespan */
55 apr_status_t md_timeslice_create(const md_timeslice_t **pts, apr_pool_t *p,
56 apr_interval_time_t norm, apr_interval_time_t len);
58 int md_timeslice_eq(const md_timeslice_t *ts1, const md_timeslice_t *ts2);
60 const char *md_timeslice_parse(const md_timeslice_t **pts, apr_pool_t *p,
61 const char *val, apr_interval_time_t defnorm);
62 const char *md_timeslice_format(const md_timeslice_t *ts, apr_pool_t *p);
64 md_timeperiod_t md_timeperiod_slice_before_end(const md_timeperiod_t *period,
65 const md_timeslice_t *ts);
67 #endif /* md_util_h */