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

Public Attributes | List of all members
ace_time::ZoneInfoLow::ZoneInfo Struct Reference

Representation of a given time zone, implemented as an array of ZoneEra records. More...

`#include <ZoneInfoLow.h>`

Collaboration diagram for ace_time::ZoneInfoLow::ZoneInfo:
[legend]

## Public Attributes
const char *const | name
| Full name of zone (e.g. More...
uint32_t const | zoneId
| Unique, stable ID of the zone name, created from a hash of the name. More...
const ZoneContext *const | zoneContext
| ZoneContext metadata.
uint8_t const | numEras
| Number of ZoneEra entries. More...
const ZoneEra *const | eras
| A `const ZoneEras*` pointer to `numEras` ZoneEra entries in increasing order of UNTIL time.
const ZoneInfo *const | targetInfo
| If Link, points to the target zone info. More...

## Detailed Description

Representation of a given time zone, implemented as an array of ZoneEra records.

Definition at line 324 of file ZoneInfoLow.h.

## Member Data Documentation

## ◆ name

const char* const ace_time::ZoneInfoLow::ZoneInfo::name

Full name of zone (e.g.

"America/Los_Angeles").

Definition at line 326 of file ZoneInfoLow.h.

## ◆ numEras

uint8_t const ace_time::ZoneInfoLow::ZoneInfo::numEras

Number of ZoneEra entries.

If this Zone is a actually a Link to a target Zone, the ZoneEra and numEras of the target Zone is placed here, and the targetInfo pointer below is set to the target ZoneInfo. This allows a Link entry to be self-contained, acting like any other Zone entry, which simplifies some of the code the ZoneProcessor because it does not need to traverse the link to find the required information. In essence, a Link is a "hard link" to a Zone.

An alternative implementation is to set numEras to 0 for a Link, and traverse the targetInfo to find the required numEras and eras. This led to more complicated code.

Definition at line 353 of file ZoneInfoLow.h.

## ◆ targetInfo

const ZoneInfo* const ace_time::ZoneInfoLow::ZoneInfo::targetInfo

If Link, points to the target zone info.

If Zone, nullptr.

Definition at line 362 of file ZoneInfoLow.h.

## ◆ zoneId

uint32_t const ace_time::ZoneInfoLow::ZoneInfo::zoneId

Unique, stable ID of the zone name, created from a hash of the name.

This ID will never change once assigned. This can be used for presistence and serialization.

Definition at line 333 of file ZoneInfoLow.h.

The documentation for this struct was generated from the following file:

- /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zoneinfo/ZoneInfoLow.h