1//
2// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
3//
4// Distributed under the Boost Software License, Version 1.0.
5// https://www.boost.org/LICENSE_1_0.txt
6
7#include <boost/locale/date_time.hpp>
8#include <boost/locale/formatting.hpp>
9#include "boost/locale/shared/ios_prop.hpp"
10
11namespace boost { namespace locale {
12 ios_info::ios_info() : flags_(0), domain_id_(0), time_zone_(time_zone::global()) {}
13
14 ios_info::~ios_info() = default;
15
16 ios_info::ios_info(const ios_info&) = default;
17 ios_info& ios_info::operator=(const ios_info&) = default;
18
19 void ios_info::display_flags(uint64_t f)
20 {
21 flags_ = (flags_ & ~uint64_t(flags::display_flags_mask)) | f;
22 }
23 uint64_t ios_info::display_flags() const
24 {
25 return flags_ & flags::display_flags_mask;
26 }
27
28 void ios_info::currency_flags(uint64_t f)
29 {
30 flags_ = (flags_ & ~uint64_t(flags::currency_flags_mask)) | f;
31 }
32 uint64_t ios_info::currency_flags() const
33 {
34 return flags_ & flags::currency_flags_mask;
35 }
36
37 void ios_info::date_flags(uint64_t f)
38 {
39 flags_ = (flags_ & ~uint64_t(flags::date_flags_mask)) | f;
40 }
41 uint64_t ios_info::date_flags() const
42 {
43 return flags_ & flags::date_flags_mask;
44 }
45
46 void ios_info::time_flags(uint64_t f)
47 {
48 flags_ = (flags_ & ~uint64_t(flags::time_flags_mask)) | f;
49 }
50 uint64_t ios_info::time_flags() const
51 {
52 return flags_ & flags::time_flags_mask;
53 }
54
55 void ios_info::domain_id(int id)
56 {
57 domain_id_ = id;
58 }
59 int ios_info::domain_id() const
60 {
61 return domain_id_;
62 }
63
64 void ios_info::time_zone(const std::string& tz)
65 {
66 time_zone_ = tz;
67 }
68 std::string ios_info::time_zone() const
69 {
70 return time_zone_;
71 }
72
73 ios_info& ios_info::get(std::ios_base& ios)
74 {
75 return impl::ios_prop<ios_info>::get(ios);
76 }
77
78 void ios_info::on_imbue() {}
79
80 namespace {
81 struct initializer {
82 initializer() { impl::ios_prop<ios_info>::global_init(); }
83 } initializer_instance;
84 } // namespace
85
86}} // namespace boost::locale
87

source code of boost/libs/locale/src/boost/locale/shared/formatting.cpp