# Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. — Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Examples

- File List

# boost/locale/generator.hpp

    00001 //
    00002 //  Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
    00003 //
    00004 //  Distributed under the Boost Software License, Version 1.0. (See
    00005 //  accompanying file LICENSE_1_0.txt or copy at
    00006 //  http://www.boost.org/LICENSE_1_0.txt)
    00007 //
    00008 #ifndef BOOST_LOCALE_GENERATOR_HPP
    00009 #define BOOST_LOCALE_GENERATOR_HPP
    00010 #include <boost/locale/config.hpp>
    00011 #include <boost/cstdint.hpp>
    00012 #ifdef BOOST_MSVC
    00013 #  pragma warning(push)
    00014 #  pragma warning(disable : 4275 4251 4231 4660)
    00015 #endif
    00016 #include <string>
    00017 #include <locale>
    00018 #include <memory>
    00019
    00020 namespace boost {
    00021
    00022     template<typename Type>
    00023     class shared_ptr;
    00024
    00028     namespace locale {
    00029
    00030         class localization_backend;
    00031         class localization_backend_manager;
    00032
    00033         static const uint32_t nochar_facet    = 0;
    00034         static const uint32_t char_facet      = 1 << 0;
    00035         static const uint32_t wchar_t_facet   = 1 << 1;
    00036         static const uint32_t char16_t_facet  = 1 << 2;
    00037         static const uint32_t char32_t_facet  = 1 << 3;
    00038
    00039         static const uint32_t character_first_facet = char_facet;
    00040         static const uint32_t character_last_facet = char32_t_facet;
    00041         static const uint32_t all_characters = 0xFFFF;
    00042
    00043         typedef uint32_t character_facet_type;
    00044
    00045         static const uint32_t     convert_facet   = 1 << 0;
    00046         static const uint32_t     collation_facet = 1 << 1;
    00047         static const uint32_t     formatting_facet= 1 << 2;
    00048         static const uint32_t     parsing_facet   = 1 << 3;
    00049         static const uint32_t     message_facet   = 1 << 4;
    00050         static const uint32_t     codepage_facet  = 1 << 5;
    00051         static const uint32_t     boundary_facet  = 1 << 6;
    00052
    00053         static const uint32_t     per_character_facet_first = convert_facet;
    00054         static const uint32_t     per_character_facet_last = boundary_facet;
    00055
    00056         static const uint32_t     calendar_facet  = 1 << 16;
    00057         static const uint32_t     information_facet = 1 << 17;
    00058
    00059         static const uint32_t    non_character_facet_first = calendar_facet;
    00060         static const uint32_t    non_character_facet_last = information_facet;
    00061
    00062
    00063         static const uint32_t    all_categories  = 0xFFFFFFFFu;
    00064
    00065         typedef uint32_t locale_category_type;
    00066
    00073
    00074         class BOOST_LOCALE_DECL generator {
    00075         public:
    00076
    00080             generator();
    00084             generator(localization_backend_manager const &);
    00085
    00086             ~generator();
    00087
    00091             void categories(locale_category_type cats);
    00095             locale_category_type categories() const;
    00096
    00100             void characters(character_facet_type chars);
    00104             character_facet_type characters() const;
    00105
    00126             void add_messages_domain(std::string const &domain);
    00131             void set_default_messages_domain(std::string const &domain);
    00132
    00136             void clear_domains();
    00137
    00152             void add_messages_path(std::string const &path);
    00153
    00157             void clear_paths();
    00158
    00162             void clear_cache();
    00163
    00167             void locale_cache_enabled(bool on);
    00168
    00172             bool locale_cache_enabled() const;
    00173
    00177             bool use_ansi_encoding() const;
    00178
    00186             void use_ansi_encoding(bool enc);
    00187
    00191             std::locale generate(std::string const &id) const;
    00196             std::locale generate(std::locale const &base,std::string const &id) const;
    00200             std::locale operator()(std::string const &id) const
    00201             {
    00202                 return generate(id);
    00203             }
    00204
    00208             void set_option(std::string const &name,std::string const &value);
    00209
    00213             void clear_options();
    00214
    00215         private:
    00216
    00217             void set_all_options(shared_ptr<localization_backend> backend,std::string const &id) const;
    00218
    00219             generator(generator const &);
    00220             void operator=(generator const &);
    00221
    00222             struct data;
    00223             std::auto_ptr<data> d;
    00224         };
    00225
    00226     }
    00227 }
    00228 #ifdef BOOST_MSVC
    00229 #pragma warning(pop)
    00230 #endif
    00231
    00232
    00233 #endif
    00234 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
    00235