4#include <system/globalization/number_format_info.h>
5#include <system/globalization/date_time_format_info.h>
6#include <system/globalization/calendar.h>
7#include <system/globalization/culture_types.h>
8#include <system/globalization/compare_info.h>
9#include <system/globalization/text_info.h>
10#include <system/icloneable.h>
11#include <system/iformatprovider.h>
12#include <system/nullable.h>
13#include <system/globalization/details/culture_data_ptr.h>
14#include <system/details/lazy.h>
15#include <system/details/spin_lock.h>
17namespace System {
namespace Globalization {
43 ASPOSECPP_SHARED_API
CultureInfo(
int culture,
bool use_user_override);
235 template <
typename T>
236 using Lazy = System::Details::Lazy<T>;
238 using Lock = System::Details::OptionalSpinLock;
239 using LockContext = std::lock_guard<Lock>;
242 const bool m_is_read_only =
false;
244 const bool m_use_user_override =
false;
248 const String m_text_and_compare_culture_name;
250 mutable Lock m_lockable;
255 mutable Lazy<const CultureInfoPtr> m_parent;
257 mutable Lazy<const TextInfoPtr> m_text_info;
259 mutable Lazy<const CompareInfoPtr> m_compare_info;
261 mutable Lazy<const CalendarPtr> m_calendar;
263 mutable Lazy<const ArrayPtr<CalendarPtr>> m_optional_calendars;
265 mutable Lazy<NumberFormatInfoPtr> m_number_format;
267 mutable Lazy<DateTimeFormatInfoPtr> m_date_time_format;
273 MEMBER_FUNCTION_MAKE_OBJECT(
CultureInfo, CODEPORTING_ARGS(
const String& name,
const String& text_and_compare_culture_name), CODEPORTING_ARGS(name, text_and_compare_culture_name));
279 MEMBER_FUNCTION_MAKE_OBJECT(
CultureInfo, CODEPORTING_ARGS(
const CultureInfo& other,
bool is_read_only =
false), CODEPORTING_ARGS(other, is_read_only));
288 void VerifyWriteable()
const;
Collection of culture-specific values and algorithms. Setter operations are only enabled on non-read-...
Definition: culture_info.h:32
static void set_CurrentCulture(const CultureInfoPtr &value)
Sets culture for current thread.
bool Equals(SharedPtr< Object > obj) override
Compares objects.
CultureInfoPtr GetConsoleFallbackUICulture() const
Gets alternate culture suitable for console applications.
virtual String get_ThreeLetterWindowsLanguageName() const
Gets three-letter code for language as defined in Windows API.
static CultureInfoPtr CreateSpecificCulture(const String &name)
Creates culture by name.
bool operator==(const CultureInfo &other) const
Compares culture parameters.
SharedPtr< Object > GetFormat(const TypeInfo &format_type) override
Gets format object for specific type.
CultureInfo(const String &name)
Constructor.
virtual String get_Name() const
Gets culture name.
virtual CompareInfoPtr get_CompareInfo() const
Gets string comparer that adheres to culture rules.
CultureInfo(int culture, bool use_user_override)
Constructor.
virtual String get_NativeName() const
Gets culture native name.
static const CultureInfoPtr & get_InstalledUICulture()
Gets culture installed with the operating system.
virtual ArrayPtr< CalendarPtr > get_OptionalCalendars() const
List of calendars that can be used with the culture.
int GetHashCode() const override
Returns object hash code.
CultureInfo(const String &name, bool use_user_override)
Constructor.
virtual int get_KeyboardLayoutId() const
Gets active input locale identifier.
virtual CalendarPtr get_Calendar() const
Gets calendar used by the culture.
~CultureInfo() override
Destructor.
static CultureInfoPtr GetCultureInfo(const String &name)
Gets culture by its name. Same as CreateSpecificCulture.
static CultureInfoPtr get_DefaultThreadCurrentUICulture()
Gets default UI culture in the current application domain.
void ClearCachedData()
Refreshes cached culture information.
static const CultureInfoPtr & get_CurrentCulture()
Gets culture set for current thread.
bool get_UseUserOverride() const
Gets a flag indicating whether the CultureInfo uses user-selected culture settings.
CultureTypes get_CultureTypes() const
Gets bitwise joint of culture types that describe the current culture.
virtual String get_DisplayName() const
Gets culture display name.
static void set_DefaultThreadCurrentUICulture(const CultureInfoPtr &value)
Sets default UI culture in the current application domain.
static void set_DefaultThreadCurrentCulture(const CultureInfoPtr &value)
Sets default culture in the current application domain.
static CultureInfoPtr ReadOnly(const CultureInfoPtr &culture_info)
Gets a read only version of culture.
virtual int get_LCID() const
Gets culture identifier.
virtual String get_TwoLetterISOLanguageName() const
Gets two letters ISO language name associated with culture.
virtual void set_DateTimeFormat(DateTimeFormatInfoPtr value)
Sets date format information.
static ArrayPtr< CultureInfoPtr > GetCultures(CultureTypes types)
Gets cultures that fall into specified types.
bool get_IsReadOnly() const
Checks if culture object is read-only.
static CultureInfoPtr GetCultureInfo(const String &name, const String &text_and_compare_culture_name)
Gets culture by its name.
virtual TextInfoPtr get_TextInfo() const
Gets text parameters used by the culture.
static const CultureInfoPtr & get_InvariantCulture()
Gets invariant culture.
static void set_CurrentUICulture(const CultureInfoPtr &value)
Sets current thread's UI culture.
virtual CultureInfoPtr get_Parent() const
Gets parent culture.
CultureInfo(std::nullptr_t)
Always throws ArgumentNullException.
String get_IetfLanguageTag() const
Gets the RFC 4646 name for a language.
virtual String get_ThreeLetterISOLanguageName() const
Gets three-letter ISO 639-2 language code.
static const CultureInfoPtr & get_CurrentUICulture()
Gets current thread's UI culture.
static CultureInfoPtr get_DefaultThreadCurrentCulture()
Gets default culture in the current application domain.
virtual NumberFormatInfoPtr get_NumberFormat() const
Gets number format information.
static CultureInfoPtr GetCultureInfo(int32_t culture)
Gets culture by id.
virtual DateTimeFormatInfoPtr get_DateTimeFormat() const
Gets date format information.
SharedPtr< Object > Clone() override
Clones culture info.
bool IsInherited() const
Gets is-inherited flag. FOR INTERNAL USE.
CultureInfo(int culture)
RTTI information.
virtual String get_EnglishName() const
Gets culture English name.
String ToString() const override
Converts culture to string.
static CultureInfoPtr GetCultureInfoByIetfLanguageTag(const String &name)
Deprecated. Gets a read-only CultureInfo object by the specified RFC 4646 language tag.
virtual void set_NumberFormat(NumberFormatInfoPtr value)
Gets number format information.
CultureInfo & operator=(const CultureInfo &)=delete
virtual bool get_IsNeutralCulture() const
Checks whether the culture is neutral.
Defies a method that enables object cloning - creating a copy of an object. Objects of this class sho...
Definition: icloneable.h:16
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:62
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
Represents a particular type and provides information about it.
Definition: type_info.h:109
std::shared_ptr< CultureData > CultureDataPtr
Pointer to hold implementation type.
Definition: culture_data_ptr.h:12
SharedPtr< CultureInfo > CultureInfoPtr
CultureInfo pointer type.
Definition: culture_info.h:21
CultureTypes
Culture categories bitmask entries.
Definition: culture_types.h:12
Definition: db_command.h:9