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.

Synopsis

Declared in <baltzo_datafileloader.h>

class DataFileLoader
    : public Loader

Base Classes

Name

Description

Loader

This class provides a protocol (a pure abstract interface) for loading a time zone object.

Type Aliases

Name

Description

allocator_type

Allocator type used by this class.

Member Functions

Name

Description

DataFileLoader [constructor]

Constructors

~DataFileLoader [destructor] [virtual]

Destroy this data‐file loader.

configureRootPath

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

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 that if no allocator was supplied at construction the default allocator in effect at construction is used.

isRootPathPlausible

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 [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.

loadTimeZoneFilePath

loadTimeZoneFilePath overloads

loadTimeZoneRaw

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 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

Return the root of the directory hierarchy from which this loader will attempt to load Zoneinfo binary data files. The behavior is undefined unless either configureRootPath has been called or configureRootPathIfValid has been called successfully.

operator BloombergLP::bslmf::NestedTraitDeclaration<DataFileLoader, UsesBslmaAllocator>

Nested trait declaration for bslma::UsesBslmaAllocator.

Static Member Functions

Name

Description

isPlausibleZoneinfoRootPath

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.

Created with MrDocs