AceTime  1.6
Date and time classes for Arduino that support timezones from the TZ Database, and a system clock that can synchronize from an NTP server or an RTC chip.
BasicZone.cpp
1 /*
2  * MIT License
3  * Copyright (c) 2019 Brian T. Park
4  */
5 
6 #include <Arduino.h>
7 #include <AceCommon.h> // KString
8 #include "internal/BrokerCommon.h" // findShortName()
9 #include "BasicZone.h"
10 
11 using ace_common::KString;
12 using ace_time::internal::findShortName;
14 
15 namespace ace_time {
16 
17 #if ACE_TIME_USE_PROGMEM
18 
19 void BasicZone::printNameTo(Print& printer) const {
20  const __FlashStringHelper* name = mZoneInfoBroker.name();
21  const ZoneContext* zoneContext = mZoneInfoBroker.zoneContext();
22  KString kname(name, zoneContext->fragments, zoneContext->numFragments);
23  kname.printTo(printer);
24 }
25 
26 void BasicZone::printShortNameTo(Print& printer) const {
27  const __FlashStringHelper* name = mZoneInfoBroker.name();
28  const __FlashStringHelper* shortName = findShortName(name);
29  printer.print(shortName);
30 }
31 
32 #else
33 
34 void BasicZone::printNameTo(Print& printer) const {
35  const char* name = mZoneInfoBroker.name();
36  const ZoneContext* zoneContext = mZoneInfoBroker.zoneContext();
37  KString kname(name, zoneContext->fragments, zoneContext->numFragments);
38  kname.printTo(printer);
39 }
40 
41 void BasicZone::printShortNameTo(Print& printer) const {
42  const char* name = mZoneInfoBroker.name();
43  const char* shortName = findShortName(name);
44  printer.print(shortName);
45 }
46 
47 #endif // ACE_TIME_USE_PROGMEM
48 
49 } // ace_time
BrokerCommon.h
ace_time::BasicZone::printNameTo
void printNameTo(Print &printer) const
Print the full zone name to printer.
Definition: BasicZone.cpp:19
ace_time::internal::ZoneContext
Metadata about the zone database.
Definition: ZoneContext.h:16
ace_time::BasicZone::printShortNameTo
void printShortNameTo(Print &printer) const
Print the short zone to the printer.
Definition: BasicZone.cpp:26
ace_time::internal::ZoneContext::fragments
const char *const * fragments
Zone Name fragment list.
Definition: ZoneContext.h:47
ace_time::internal::ZoneContext::numFragments
uint8_t numFragments
Number of fragments.
Definition: ZoneContext.h:44