AceTime  3.0.0
Date and time classes for Arduino that support timezones from the TZ Database.
Classes
ZoneInfoMid.h File Reference

Data structures that describe the mid resolution zoneinfo persistence format. More...

#include <stdint.h>
#include <Arduino.h>
#include <AceCommon.h>
#include "compat.h"
#include "BrokerCommon.h"
Include dependency graph for ZoneInfoMid.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ace_time::ZoneInfoMid
 Wrapper class so that the entire collection can be referenced as a singel template parameter. More...
 
struct  ace_time::ZoneInfoMid::ZoneContext
 Metadata about the zone database. More...
 
struct  ace_time::ZoneInfoMid::ZoneRule
 A time zone transition rule. More...
 
struct  ace_time::ZoneInfoMid::ZonePolicy
 A collection of transition rules which describe the DST rules of a given administrative region. More...
 
struct  ace_time::ZoneInfoMid::ZoneEra
 An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. More...
 
struct  ace_time::ZoneInfoMid::ZoneInfo
 Representation of a given time zone, implemented as an array of ZoneEra records. More...
 
class  ace_time::ZoneInfoMid::ZoneContextBroker
 Data broker for accessing a ZoneContext. More...
 
class  ace_time::ZoneInfoMid::ZoneRuleBroker
 Data broker for accessing ZoneRule. More...
 
class  ace_time::ZoneInfoMid::ZonePolicyBroker
 Data broker for accessing ZonePolicy. More...
 
class  ace_time::ZoneInfoMid::ZoneEraBroker
 Data broker for accessing ZoneEra. More...
 
class  ace_time::ZoneInfoMid::ZoneInfoBroker
 Data broker for accessing ZoneInfo. More...
 
class  ace_time::ZoneInfoMid::ZoneRegistryBroker
 Data broker for accessing the ZoneRegistry. More...
 
class  ace_time::ZoneInfoMid::ZoneInfoStore
 A storage object that creates an ZoneInfoBroker from a key that identifies the ZoneInfo. More...
 

Detailed Description

Data structures that describe the mid resolution zoneinfo persistence format.

by the AceTimeTools compiler. It has a 1-minute resolution for AT, UNTIL, STDOFF; a 15-minute resolution for DST offset (similar to ZoneInfoLow). But it also uses 2-byte year fields supporting year range of [-32767,32765] (similar to ZoneInfoHigh).

The BrokersMid.h file provides an abtraction layer which converts these low-level fields into a semantically consistent API which can be used by the AceTime classes.

The various zoneinfo database files (e.g. zonedb, zonedbx, zonedbc) will use one of these persistence formats, as defined by infos.h. (The ZoneInfoMid.h persistence format was used at some point during the development, but it is current not used by any of the zone*db database files.)

See also DEVELOPER.md for an overview of the ZoneInfoXXX layer.

Definition in file ZoneInfoMid.h.