AceTime 2.4.0 Date and time classes for Arduino that support timezones from the TZ Database.

infos.h
1 /*
2 * MIT License
3 * Copyright (c) 2023 Brian T. Park
4 */
5
6 #ifndef ACE_TIME_INFOS_H
7 #define ACE_TIME_INFOS_H
8
9 #include "ZoneInfoLow.h"
10 #include "ZoneInfoMid.h"
11 #include "ZoneInfoHigh.h"
12
13 namespace ace_time {
14
15 // Data structures for BasicZoneProcessor
16 namespace basic {
17
18 class Basic {}; // dummy sentinel class
19 using ZoneContext = zoneinfolow::ZoneContext<Basic>;
20 using ZoneRule = zoneinfolow::ZoneRule<Basic>;
21 using ZonePolicy = zoneinfolow::ZonePolicy<Basic>;
22 using ZoneEra = zoneinfolow::ZoneEra<Basic>;
23 using ZoneInfo = zoneinfolow::ZoneInfo<Basic, ZoneContext>;
24
25 }
26
27 // Data structures for ExtendedZoneProcessor. The ExtendedZoneProcessor
28 // uses the *same* storage format as BasicZoneProcessor (i.e. zoneinfolow)
29 // to save flash memory. It turns out that all timezones after the year 2000
30 // have parameters which can be accurately captured using the low-resolution
31 // zoneinfolow data types instead of the zoneinfomid data types.
32 namespace extended {
33
34 class Extended {}; // dummy sentinel class
35 using ZoneContext = zoneinfolow::ZoneContext<Extended>;
36 using ZoneRule = zoneinfolow::ZoneRule<Extended>;
37 using ZonePolicy = zoneinfolow::ZonePolicy<Extended>;
38 using ZoneEra = zoneinfolow::ZoneEra<Extended>;
39 using ZoneInfo = zoneinfolow::ZoneInfo<Extended, ZoneContext>;
40
41 }
42
43 // Data structures for CompleteZoneProcessor
44 namespace complete {
45
46 class Complete {}; // dummy sentinel class
47 using ZoneContext = zoneinfohigh::ZoneContext<Complete>;
48 using ZoneRule = zoneinfohigh::ZoneRule<Complete>;
49 using ZonePolicy = zoneinfohigh::ZonePolicy<Complete>;
50 using ZoneEra = zoneinfohigh::ZoneEra<Complete>;
51 using ZoneInfo = zoneinfohigh::ZoneInfo<Complete, ZoneContext>;
52
53 }
54
55 }
56
57 #endif
ZoneInfoHigh.h
Data structures that encodes the high resolution zoneinfo database persistence format.
ZoneInfoLow.h
Data structures describe the low resolution zoneinfo persistence format.
ZoneInfoMid.h
Data structures that describe the mid resolution zoneinfo persistence format.
ace_time::basic::Basic
Definition: infos.h:18
ace_time::complete::Complete
Definition: infos.h:46
ace_time::extended::Extended
Definition: infos.h:34
ace_time::zoneinfohigh::ZoneContext
Metadata about the zone database.
Definition: ZoneInfoHigh.h:37
ace_time::zoneinfohigh::ZoneEra
An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time per...
Definition: ZoneInfoHigh.h:206
ace_time::zoneinfohigh::ZoneInfo
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoHigh.h:295
ace_time::zoneinfohigh::ZonePolicy
A collection of transition rules which describe the DST rules of a given administrative region.
Definition: ZoneInfoHigh.h:187
ace_time::zoneinfohigh::ZoneRule
A time zone transition rule.
Definition: ZoneInfoHigh.h:113
ace_time::zoneinfolow::ZoneContext
Metadata about the zone database.
Definition: ZoneInfoLow.h:37
ace_time::zoneinfolow::ZoneEra
An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time per...
Definition: ZoneInfoLow.h:226
ace_time::zoneinfolow::ZoneInfo
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoLow.h:320
ace_time::zoneinfolow::ZonePolicy
A collection of transition rules which describe the DST rules of a given administrative region.
Definition: ZoneInfoLow.h:207
ace_time::zoneinfolow::ZoneRule
A time zone transition rule.
Definition: ZoneInfoLow.h:128