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::ZoneInfoHigh::ZoneInfo Struct Reference

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

#include <ZoneInfoHigh.h>

Collaboration diagram for ace_time::ZoneInfoHigh::ZoneInfo:
Collaboration graph
[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 303 of file ZoneInfoHigh.h.

Member Data Documentation

◆ name

const char* const ace_time::ZoneInfoHigh::ZoneInfo::name

Full name of zone (e.g.

"America/Los_Angeles").

Definition at line 305 of file ZoneInfoHigh.h.

◆ numEras

uint8_t const ace_time::ZoneInfoHigh::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 332 of file ZoneInfoHigh.h.

◆ targetInfo

const ZoneInfo* const ace_time::ZoneInfoHigh::ZoneInfo::targetInfo

If Link, points to the target zone info.

If Zone, nullptr.

Definition at line 341 of file ZoneInfoHigh.h.

◆ zoneId

uint32_t const ace_time::ZoneInfoHigh::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 312 of file ZoneInfoHigh.h.


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