[#BloombergLP-baltzo-ZoneinfoBinaryHeader] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/baltzo.adoc[baltzo]::ZoneinfoBinaryHeader :relfileprefix: ../../ :mrdocs: This simply constrained (value‐semantic) attribute class represents the header information found at the start of a Zoneinfo (binary) database file, which describes the contents of the file. == Synopsis Declared in `<baltzo_zoneinfobinaryheader.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class ZoneinfoBinaryHeader; ---- == Description See the section for information on the class attributes. Note that the class invariants are identically the constraints on the individual attributes. This class: * supports a complete set of _value_ _semantic_ operations * except for `bdex` serialization * is _exception‐neutral_ * is _alias‐safe_ * is `const` _thread‐safe_ For terminology see `bsldoc_glossary`. == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/2constructor-06.adoc[`ZoneinfoBinaryHeader`] [.small]#[constructor]# | Constructors | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/2destructor.adoc[`~ZoneinfoBinaryHeader`] [.small]#[destructor]# | Destroy this object. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/operator_assign.adoc[`operator=`] | Assign to this object the value of the specified `rhs` object, and return a reference providing modifiable access to this object. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/abbrevDataSize.adoc[`abbrevDataSize`] | Return the value of the `abbrevDataSize` attribute of this object. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/numIsGmt.adoc[`numIsGmt`] | Return the value of the `numIsGmt` attribute of this object. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/numIsStd.adoc[`numIsStd`] | Return the value of the `numIsStd` attribute of this object. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/numLeaps.adoc[`numLeaps`] | Return the value of the `numLeaps` attribute of this object. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/numLocalTimeTypes.adoc[`numLocalTimeTypes`] | Return the value of the `numLocalTimeTypes` attribute of this object. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/numTransitions.adoc[`numTransitions`] | Return the value of the `numTransitions` attribute of this object. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/print.adoc[`print`] | Write the value of this object to the specified output `stream` in a human‐readable format, and return a reference to `stream`. Optionally specify an initial indentation `level`, whose absolute value is incremented recursively for nested objects. If `level` is specified, optionally specify `spacesPerLevel`, whose absolute value indicates the number of spaces per indentation level for this and all of its nested objects. If `level` is negative, suppress indentation of the first line. If `spacesPerLevel` is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by `level`). If `stream` is not valid on entry, this operation has no effect. Note that the format is not fully specified, and can change without notice. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/setAbbrevDataSize.adoc[`setAbbrevDataSize`] | Set the `abbrevDataSize` attribute of this object to the specified `value`. The behavior is undefined unless `1 <= value`. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/setNumIsGmt.adoc[`setNumIsGmt`] | Set the `numIsGmt` attribute of this object to the specified `value`. The behavior is undefined unless `0 <= value`. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/setNumIsStd.adoc[`setNumIsStd`] | Set the `numIsStd` attribute of this object to the specified `value`. The behavior is undefined unless `0 <= value`. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/setNumLeaps.adoc[`setNumLeaps`] | Set the `numLeaps` attribute of this object to the specified `value`. The behavior is undefined unless `0 <= value`. While we do not provide parsed leap second transitions to clients, the requirement to be able to handle version `4` of the Zoneinfo binary data files as well forces us to allow a non‐zero number of such transactions to be accepted. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/setNumLocalTimeTypes.adoc[`setNumLocalTimeTypes`] | Set the `numLocalTimeTypes` attribute of this object to the specified `value`. The behavior is undefined unless `1 <= value`. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/setNumTransitions.adoc[`setNumTransitions`] | Set the `numTransitions` attribute of this object to the specified `value`. The behavior is undefined unless `0 <= value`. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/setVersion.adoc[`setVersion`] | Set the `version` attribute of this object to the specified `value`. The behavior is undefined unless '0 == value || (50 >= value || 52 <= value)'. Note that 50 is the value of ASCII character `2` and 52 is the value of ASCII character `4`. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/swap.adoc[`swap`] | Efficiently exchange the value of this object with the value of the specified `other` object. This method provides the no‐throw exception‐safety guarantee. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/version.adoc[`version`] | Return the value of the `version` attribute of this object. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/isValidAbbrevDataSize.adoc[`isValidAbbrevDataSize`] | Return `true` if the specified `value` is greater than or equal to 1, and `false` otherwise'. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/isValidNumIsGmt.adoc[`isValidNumIsGmt`] | Return `true` if the specified `value` is greater than or equal to 0, and `false` otherwise'. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/isValidNumIsStd.adoc[`isValidNumIsStd`] | Return `true` if the specified `value` is greater than or equal to 0, and `false` otherwise'. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/isValidNumLeaps.adoc[`isValidNumLeaps`] | Return `true` if the specified `value` is greater than or equal to 0, and `false` otherwise'. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/isValidNumLocalTimeTypes.adoc[`isValidNumLocalTimeTypes`] | Return `true` if the specified `value` is greater than or equal to 1, and `false` otherwise'. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/isValidNumTransitions.adoc[`isValidNumTransitions`] | Return `true` if the specified `value` is greater than or equal to 0, and `false` otherwise'. | xref:BloombergLP/baltzo/ZoneinfoBinaryHeader/isValidVersion.adoc[`isValidVersion`] | Return `true` if the specified value equals '0', `2`, `3` or `4`, and `false` otherwise. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/baltzo/operator_not_eq-04c.adoc[`operator!=`] | Return `true` if the specified `lhs` and `rhs` objects have the same value, and `false` otherwise. Two `ZoneinfoBinaryHeader` objects do not have the same value if the corresponding values of their `version`, `numIsGmt`, `numIsStd`, `numLeaps`, `numTransitions`, `numLocalTimeTypes`, or `abbrevDataSize` attributes are not the same. | xref:BloombergLP/baltzo/operator_eq-0b.adoc[`operator==`] | Return `true` if the specified `lhs` and `rhs` objects have the same value, and `false` otherwise. Two `ZoneinfoBinaryHeader` objects have the same value if the corresponding values of their `version`, `numIsGmt`, `numIsStd`, `numLeaps`, `numTransitions`, `numLocalTimeTypes`, and `abbrevDataSize` attributes are the same. | xref:BloombergLP/baltzo/swap-0a.adoc[`swap`] | Efficiently exchange the values of the specified `a` and `b` objects. This function provides the no‐throw exception‐safety guarantee. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#