#include <baltzo_datafileloader.h>
This component provides a concrete implementation of the DataLoader protocol for loading, into a Zoneinfo, the properties of a time zone defined by an Zoneinfo (TZ Database) binary file located on the file system.
See baltzo_datafileloader
◆ allocator_type
◆ DataFileLoader() [1/2]
| baltzo::DataFileLoader::DataFileLoader |
( |
| ) |
|
Create an unconfigured data-file loader. Optionally specify an allocator (e.g., the address of a bslma::Allocator object) to supply memory; otherwise, the default allocator is used.
◆ DataFileLoader() [2/2]
| baltzo::DataFileLoader::DataFileLoader |
( |
const allocator_type & |
allocator | ) |
|
|
explicit |
◆ ~DataFileLoader()
| baltzo::DataFileLoader::~DataFileLoader |
( |
| ) |
|
Destroy this data-file loader.
◆ BSLMF_NESTED_TRAIT_DECLARATION()
◆ configureRootPath()
| void baltzo::DataFileLoader::configureRootPath |
( |
const char * |
path | ) |
|
Unconditionally set, to the specified path, the root of the file-system directory hierarchy from which this loader will read Zoneinfo binary time-zone information files.
◆ configureRootPathIfPlausible()
| int baltzo::DataFileLoader::configureRootPathIfPlausible |
( |
const char * |
path | ) |
|
Set, to the specified path, the root of the file-system directory hierarchy from which this loader will read Zoneinfo binary time-zone information files. Return 0 on success, and a non-zero value (without no effect) if path is not a directory that appears to contain valid Zoneinfo data, as determined by calling isPlausibleZoneinfoRootPath on path.
◆ get_allocator()
Return the allocator used by this object to supply memory.
- Note
- Note that if no allocator was supplied at construction the default allocator in effect at construction is used.
◆ isPlausibleZoneinfoRootPath()
| static bool baltzo::DataFileLoader::isPlausibleZoneinfoRootPath |
( |
const char * |
path | ) |
|
|
static |
Return true if there currently exists a directory at the specified file-system path that appears to contain Zoneinfo time-zone information files. This method verifies (at a minimum) that path is a valid directory, and contains files for a subset of common time-zone identifiers, but does not guarantee path is currently (or will remain) a correctly configured Zoneinfo database containing a complete set of time-zone data.
◆ isRootPathPlausible()
| bool baltzo::DataFileLoader::isRootPathPlausible |
( |
| ) |
const |
|
inline |
Return true if the directory returned by the rootPath method exists and appears to contain valid Zoneinfo time-zone information files, as determined by calling isPlausibleZoneinfoRootPath on the value returned by the rootPath method.
◆ loadTimeZone()
| int baltzo::DataFileLoader::loadTimeZone |
( |
Zoneinfo * |
result, |
|
|
const char * |
timeZoneId |
|
) |
| |
|
virtual |
Load into the specified result the time-zone information for the time zone identified by the specified timeZoneId. The result will have a sentinel transition at 01-01-001, meeting the first two requirements for a "well-formed" object (see baltzo::ZoneinfoUtil::isWellFormed documentation). Return 0 on success, and a non-zero value otherwise. A return status of ErrorCode::k_UNSUPPORTED_ID indicates that timeZoneId is not recognized. If an error occurs during this operation, result will be left in a valid, but unspecified state.
Implements baltzo::Loader.
◆ loadTimeZoneFilePath() [1/2]
| int baltzo::DataFileLoader::loadTimeZoneFilePath |
( |
bsl::string * |
result, |
|
|
const char * |
timeZoneId |
|
) |
| const |
◆ loadTimeZoneFilePath() [2/2]
| int baltzo::DataFileLoader::loadTimeZoneFilePath |
( |
std::string * |
result, |
|
|
const char * |
timeZoneId |
|
) |
| const |
◆ loadTimeZoneRaw()
| int baltzo::DataFileLoader::loadTimeZoneRaw |
( |
Zoneinfo * |
result, |
|
|
const char * |
timeZoneId |
|
) |
| |
Load into the specified result the time-zone information for the time zone identified by the specified timeZoneId exactly in accordance with the original data. The result may not be a "well-formed" object (see baltzo::ZoneinfoUtil::isWellFormed documentation for details). Return 0 on success, and a non-zero value otherwise. A return status of ErrorCode::k_UNSUPPORTED_ID indicates that timeZoneId is not recognized. If an error occurs during this operation, result will be left in a valid, but unspecified state.
- Note
- Note that time zone data files created by certain versions of the
zic time zone compiler will have a sentinel transition prior to 01-01-0001 (the first representable Datetime value) and the result will therefore be non-well formed (use loadTimeZone instead).
◆ rootPath()
| const bsl::string & baltzo::DataFileLoader::rootPath |
( |
| ) |
const |
Return the root of the directory hierarchy from which this loader will attempt to load Zoneinfo binary data files.
- Precondition
- The behavior is undefined unless either
configureRootPath has been called or configureRootPathIfValid has been called successfully.
The documentation for this class was generated from the following file: