8#ifndef INCLUDED_BALTZO_ZONEINFO
9#define INCLUDED_BALTZO_ZONEINFO
283#include <balscm_version.h>
305#include <bsl_cstring.h>
306#include <bsl_iosfwd.h>
308#include <bsl_string.h>
309#include <bsl_vector.h>
311#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
312#include <bsl_algorithm.h>
384 bsl::ostream&
print(bsl::ostream& stream,
386 int spacesPerLevel = 4)
const;
438 class DescriptorLess {
634 bsl::ostream&
print(bsl::ostream& stream,
636 int spacesPerLevel = 4)
const;
685, d_descriptor_p(descriptor)
692ZoneinfoTransition::~ZoneinfoTransition()
701 return *d_descriptor_p;
715 const ZoneinfoTransition& rhs)
717 return lhs.utcTime() == rhs.utcTime()
718 && lhs.descriptor() == rhs.descriptor();
723 const ZoneinfoTransition& rhs)
725 return !(lhs == rhs);
730 const ZoneinfoTransition& rhs)
732 return lhs.utcTime() < rhs.utcTime();
747, d_posixExtendedRangeDescription()
753: d_identifier(allocator)
754, d_descriptors(allocator)
755, d_transitions(allocator)
756, d_posixExtendedRangeDescription(allocator)
773 d_identifier = value;
781 d_identifier = value;
789 d_posixExtendedRangeDescription.
assign(value.
begin(), value.
end());
797 d_posixExtendedRangeDescription = value;
809 &other.d_posixExtendedRangeDescription);
824 return d_transitions.
front();
842 return d_posixExtendedRangeDescription;
848 return d_transitions.
size();
854 return d_transitions.
begin();
860 return d_transitions.
end();
869 return lhs.identifier() == rhs.identifier()
870 && lhs.posixExtendedRangeDescription() ==
871 rhs.posixExtendedRangeDescription()
872 && lhs.numTransitions() == rhs.numTransitions()
873 && bsl::equal(lhs.d_transitions.begin(),
874 lhs.d_transitions.end(),
875 rhs.d_transitions.begin());
881 return !(lhs == rhs);
Definition baltzo_localtimedescriptor.h:189
Definition baltzo_zoneinfo.h:329
~ZoneinfoTransition()
Destroy this object.
Definition baltzo_zoneinfo.h:692
bdlt::EpochUtil::TimeT64 utcTime() const
Return the value of the utcTime attribute of this object.
Definition baltzo_zoneinfo.h:705
BSLMF_NESTED_TRAIT_DECLARATION(ZoneinfoTransition, bslmf::IsBitwiseMoveable)
const LocalTimeDescriptor & descriptor() const
Definition baltzo_zoneinfo.h:699
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
Definition baltzo_zoneinfo.h:429
bslma::Allocator * allocator() const
Definition baltzo_zoneinfo.h:814
allocator_type get_allocator() const
Definition baltzo_zoneinfo.h:828
TransitionConstIterator findTransitionForUtcTime(const bdlt::Datetime &utcTime) const
friend bool operator==(const Zoneinfo &, const Zoneinfo &)
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
Zoneinfo(bslmf::MovableRef< Zoneinfo > original) BSLS_KEYWORD_NOEXCEPT
TransitionConstIterator endTransitions() const
Definition baltzo_zoneinfo.h:858
const bsl::string & posixExtendedRangeDescription() const
Definition baltzo_zoneinfo.h:840
Zoneinfo & operator=(bslmf::MovableRef< Zoneinfo > rhs)
void addTransition(bdlt::EpochUtil::TimeT64 utcTime, const LocalTimeDescriptor &descriptor)
TransitionConstIterator beginTransitions() const
Definition baltzo_zoneinfo.h:852
TransitionSequence::const_iterator TransitionConstIterator
Definition baltzo_zoneinfo.h:488
void setPosixExtendedRangeDescription(const bsl::string_view &value)
Definition baltzo_zoneinfo.h:785
Zoneinfo(const Zoneinfo &original, const allocator_type &allocator=allocator_type())
const bsl::string & identifier() const
Definition baltzo_zoneinfo.h:834
void setIdentifier(const bsl::string_view &value)
Definition baltzo_zoneinfo.h:769
void swap(Zoneinfo &other)
Definition baltzo_zoneinfo.h:801
bsl::allocator< char > allocator_type
Definition baltzo_zoneinfo.h:484
bsl::size_t numTransitions() const
Return the number of transitions maintained by this zone info.
Definition baltzo_zoneinfo.h:846
BSLMF_NESTED_TRAIT_DECLARATION(Zoneinfo, bslma::UsesBslmaAllocator)
Zoneinfo & operator=(const Zoneinfo &rhs)
Definition baltzo_zoneinfo.h:762
Zoneinfo()
Definition baltzo_zoneinfo.h:743
const ZoneinfoTransition & firstTransition() const
Definition baltzo_zoneinfo.h:820
Zoneinfo(bslmf::MovableRef< Zoneinfo > original, const allocator_type &allocator)
Definition bdlt_datetime.h:331
Definition bslma_bslallocator.h:580
BloombergLP::bslma::Allocator * mechanism() const
Definition bslma_bslallocator.h:1126
Definition bslstl_stringview.h:441
BSLS_KEYWORD_CONSTEXPR const_iterator end() const BSLS_KEYWORD_NOEXCEPT
Return the past-the-end iterator for this view.
Definition bslstl_stringview.h:1620
BSLS_KEYWORD_CONSTEXPR const_pointer data() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_stringview.h:1760
BSLS_KEYWORD_CONSTEXPR const_iterator begin() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_stringview.h:1602
Definition bslstl_string.h:1281
basic_string & assign(const basic_string &replacement)
Definition bslstl_string.h:5716
allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
Return the allocator used by this string to supply memory.
Definition bslstl_string.h:6723
Definition bslstl_set.h:657
size_type size() const BSLS_KEYWORD_NOEXCEPT
Return the number of elements in this vector.
Definition bslstl_vector.h:2664
iterator begin() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:2511
iterator end() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:2519
reference front()
Definition bslstl_vector.h:2567
Definition bslstl_vector.h:1025
ZoneinfoTransition const * const_iterator
Definition bslstl_vector.h:1058
static void swap(T *a, T *b)
Definition bslalg_swaputil.h:194
Definition bslma_allocator.h:457
Definition bslmf_movableref.h:751
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1804
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:632
Definition baltzo_datafileloader.h:263
bool operator==(const LocalDatetime &lhs, const LocalDatetime &rhs)
bool operator<(const ZoneinfoTransition &lhs, const ZoneinfoTransition &rhs)
bool operator!=(const LocalDatetime &lhs, const LocalDatetime &rhs)
bsl::ostream & operator<<(bsl::ostream &stream, DstPolicy::Enum value)
bsls::Types::Int64 TimeT64
Definition bdlt_epochutil.h:207
Definition bslma_usesbslmaallocator.h:343
Definition bslmf_isbitwisemoveable.h:718