AceTime  2.3.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 
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)
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
A specific implementation of ExtendedZoneProcessorTemplate that uses the complete::ZoneXxxBrokers cla...
static const uint8_t kTypeComplete
Unique TimeZone type identifier for CompleteZoneProcessor.
An implementation of ZoneProcessor that supports for all zones defined by the TZ Database.
A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo.
Definition: BrokersHigh.h:474
Representation of a given time zone, implemented as an array of ZoneEra records.
Definition: ZoneInfoHigh.h:277