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>
382 bsl::ostream&
print(bsl::ostream& stream,
384 int spacesPerLevel = 4)
const;
438 class DescriptorLess {
643 bsl::ostream&
print(bsl::ostream& stream,
645 int spacesPerLevel = 4)
const;
695, d_descriptor_p(descriptor)
702ZoneinfoTransition::~ZoneinfoTransition()
711 return *d_descriptor_p;
725 const ZoneinfoTransition& rhs)
727 return lhs.utcTime() == rhs.utcTime()
728 && lhs.descriptor() == rhs.descriptor();
733 const ZoneinfoTransition& rhs)
740 const ZoneinfoTransition& rhs)
742 return lhs.utcTime() <
rhs.utcTime();
757, d_posixExtendedRangeDescription()
763: d_identifier(allocator)
764, d_descriptors(allocator)
765, d_transitions(allocator)
766, d_posixExtendedRangeDescription(allocator)
783 d_identifier = value;
791 d_identifier = value;
799 d_posixExtendedRangeDescription.
assign(value.
begin(), value.
end());
807 d_posixExtendedRangeDescription = value;
819 &other.d_posixExtendedRangeDescription);
834 return d_transitions.
front();
852 return d_posixExtendedRangeDescription;
858 return d_transitions.
size();
864 return d_transitions.
begin();
870 return d_transitions.
end();
879 return lhs.identifier() == rhs.identifier()
880 && lhs.posixExtendedRangeDescription() ==
881 rhs.posixExtendedRangeDescription()
882 && lhs.numTransitions() == rhs.numTransitions()
883 && bsl::equal(lhs.d_transitions.begin(),
884 lhs.d_transitions.end(),
885 rhs.d_transitions.begin());
Definition baltzo_localtimedescriptor.h:186
Definition baltzo_zoneinfo.h:325
~ZoneinfoTransition()
Destroy this object.
Definition baltzo_zoneinfo.h:702
bdlt::EpochUtil::TimeT64 utcTime() const
Return the value of the utcTime attribute of this object.
Definition baltzo_zoneinfo.h:715
BSLMF_NESTED_TRAIT_DECLARATION(ZoneinfoTransition, bslmf::IsBitwiseMoveable)
const LocalTimeDescriptor & descriptor() const
Definition baltzo_zoneinfo.h:709
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:824
allocator_type get_allocator() const
Definition baltzo_zoneinfo.h:838
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:868
const bsl::string & posixExtendedRangeDescription() const
Definition baltzo_zoneinfo.h:850
Zoneinfo & operator=(bslmf::MovableRef< Zoneinfo > rhs)
void addTransition(bdlt::EpochUtil::TimeT64 utcTime, const LocalTimeDescriptor &descriptor)
TransitionConstIterator beginTransitions() const
Definition baltzo_zoneinfo.h:862
TransitionSequence::const_iterator TransitionConstIterator
Definition baltzo_zoneinfo.h:489
void setPosixExtendedRangeDescription(const bsl::string_view &value)
Definition baltzo_zoneinfo.h:795
Zoneinfo(const Zoneinfo &original, const allocator_type &allocator=allocator_type())
const bsl::string & identifier() const
Definition baltzo_zoneinfo.h:844
void setIdentifier(const bsl::string_view &value)
Definition baltzo_zoneinfo.h:779
void swap(Zoneinfo &other)
Definition baltzo_zoneinfo.h:811
bsl::allocator< char > allocator_type
Definition baltzo_zoneinfo.h:485
bsl::size_t numTransitions() const
Return the number of transitions maintained by this zone info.
Definition baltzo_zoneinfo.h:856
BSLMF_NESTED_TRAIT_DECLARATION(Zoneinfo, bslma::UsesBslmaAllocator)
Zoneinfo & operator=(const Zoneinfo &rhs)
Definition baltzo_zoneinfo.h:772
Zoneinfo()
Definition baltzo_zoneinfo.h:753
const ZoneinfoTransition & firstTransition() const
Definition baltzo_zoneinfo.h:830
Zoneinfo(bslmf::MovableRef< Zoneinfo > original, const allocator_type &allocator)
Definition bdlt_datetime.h:330
Definition bslma_bslallocator.h:588
BloombergLP::bslma::Allocator * mechanism() const
Definition bslma_bslallocator.h:1146
Definition bslstl_stringview.h:471
BSLS_KEYWORD_CONSTEXPR const_iterator end() const BSLS_KEYWORD_NOEXCEPT
Return the past-the-end iterator for this view.
Definition bslstl_stringview.h:1848
BSLS_KEYWORD_CONSTEXPR const_pointer data() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_stringview.h:1988
BSLS_KEYWORD_CONSTEXPR const_iterator begin() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_stringview.h:1830
Definition bslstl_string.h:1252
basic_string & assign(const basic_string &replacement)
Definition bslstl_string.h:6347
allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
Return the allocator used by this string to supply memory.
Definition bslstl_string.h:7423
Definition bslstl_set.h:691
size_type size() const BSLS_KEYWORD_NOEXCEPT
Return the number of elements in this vector.
Definition bslstl_vector.h:3019
iterator begin() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:2866
iterator end() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:2874
reference front()
Definition bslstl_vector.h:2922
Definition bslstl_vector.h:1120
ZoneinfoTransition const * const_iterator
Definition bslstl_vector.h:1153
static void swap(T *a, T *b)
Definition bslalg_swaputil.h:182
Definition bslma_allocator.h:545
Definition bslmf_movableref.h:752
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:674
Definition baltzo_datafileloader.h:259
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)
ALLOCATOR const STRING_VIEW_LIKE_TYPE & rhs
Definition bslstl_string.h:3918
ALLOCATOR & lhs
Definition bslstl_string.h:3917
bsls::Types::Int64 TimeT64
Definition bdlt_epochutil.h:210
Definition bslma_usesbslmaallocator.h:344
Definition bslmf_isbitwisemoveable.h:718