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

CompleteZoneProcessor.h
1 /*
2 * MIT License
3 * Copyright (c) 2023 Brian T. Park
4 */
5
6 #ifndef ACE_TIME_COMPLETE_ZONE_PROCESSOR_H
7 #define ACE_TIME_COMPLETE_ZONE_PROCESSOR_H
8
9 #include <stdint.h> // uintptr_t
10 #include "../zoneinfo/BrokersHigh.h"
11 #include "ExtendedZoneProcessor.h"
12
13 namespace ace_time {
14
20 class CompleteZoneProcessor: public ExtendedZoneProcessorTemplate<
21 complete::ZoneInfoStore,
22 complete::ZoneInfoBroker,
23 complete::ZoneEraBroker,
24 complete::ZonePolicyBroker,
25 complete::ZoneRuleBroker> {
26
27 public:
29 static const uint8_t kTypeComplete = 5;
30
31 explicit CompleteZoneProcessor(const complete::ZoneInfo* zoneInfo = nullptr)
32 : ExtendedZoneProcessorTemplate<
33 complete::ZoneInfoStore,
34 complete::ZoneInfoBroker,
35 complete::ZoneEraBroker,
36 complete::ZonePolicyBroker,
37 complete::ZoneRuleBroker>(
38 kTypeComplete, &mZoneInfoStore, (uintptr_t) zoneInfo)
39 {}
40
41 private:
42 complete::ZoneInfoStore mZoneInfoStore;
43 };
44
45 }
46
47 #endif
ace_time::CompleteZoneProcessor
A specific implementation of ExtendedZoneProcessorTemplate that uses the complete::ZoneXxxBrokers cla...
Definition: CompleteZoneProcessor.h:25
ace_time::CompleteZoneProcessor::kTypeComplete
static const uint8_t kTypeComplete
Unique TimeZone type identifier for CompleteZoneProcessor.
Definition: CompleteZoneProcessor.h:29
ace_time::ExtendedZoneProcessorTemplate
An implementation of ZoneProcessor that supports for all zones defined by the TZ Database.
Definition: ExtendedZoneProcessor.h:88
ace_time::zoneinfohigh::ZoneInfoStore
A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.
Definition: BrokersHigh.h:474
ace_time::zoneinfohigh::ZoneInfo
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoHigh.h:295