AceTime  2.3.0
Date and time classes for Arduino that support timezones from the TZ Database.
Public Attributes | List of all members
ace_time::zoneinfohigh::ZoneInfo< S, ZC > Struct Template 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< S, ZC >:
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 ZC *const zoneContext
 ZoneContext metadata.
 
uint8_t const numEras
 Number of ZoneEra entries. More...
 
const ZoneEra< S > *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

template<typename S, typename ZC>
struct ace_time::zoneinfohigh::ZoneInfo< S, ZC >

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

Definition at line 277 of file ZoneInfoHigh.h.

Member Data Documentation

◆ name

template<typename S , typename ZC >
const char* const ace_time::zoneinfohigh::ZoneInfo< S, ZC >::name

Full name of zone (e.g.

"America/Los_Angeles").

Definition at line 279 of file ZoneInfoHigh.h.

◆ numEras

template<typename S , typename ZC >
uint8_t const ace_time::zoneinfohigh::ZoneInfo< S, ZC >::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 306 of file ZoneInfoHigh.h.

◆ targetInfo

template<typename S , typename ZC >
const ZoneInfo* const ace_time::zoneinfohigh::ZoneInfo< S, ZC >::targetInfo

If Link, points to the target zone info.

If Zone, nullptr.

Definition at line 315 of file ZoneInfoHigh.h.

◆ zoneId

template<typename S , typename ZC >
uint32_t const ace_time::zoneinfohigh::ZoneInfo< S, ZC >::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 286 of file ZoneInfoHigh.h.


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