28#include <rtl/tencinfo.h>
29#include <rtl/locale.h>
30#include <osl/thread.h>
31#include <osl/nlsupport.h>
43std::weak_ptr<SvtSysLocale_Impl> g_pSysLocale;
53 return *persistentMutex;
104 std::unique_lock aGuard( GetMutex() );
119 ::std::vector< OUString > aVec;
122 OUString aTok(
aStr.getToken( 0,
';',
nIndex));
124 aVec.push_back( aTok);
131 std::unique_lock aGuard( GetMutex() );
132 pImpl = g_pSysLocale.lock();
135 pImpl = std::make_shared<SvtSysLocale_Impl>();
136 g_pSysLocale =
pImpl;
142 std::unique_lock aGuard( GetMutex() );
148 return *(
pImpl->moLocaleData);
153 return pImpl->GetCharClass();
158 return pImpl->aSysLocaleOptions;
166 return pImpl->aSysLocaleOptions.GetRealLanguageTag();
174 return pImpl->aSysLocaleOptions.GetRealUILanguageTag();
This class can be accessed without locking because we load all of the data in the constructor.
const OUString & GetDatePatternsConfigString() const
The config string may be empty to denote the default DateAcceptancePatterns of the locale.
const LanguageTag & GetRealLanguageTag() const
Get locale set, always resolved to the real locale.
std::vector< OUString > getDateAcceptancePatternsConfig() const
virtual void ConfigurationChanged(utl::ConfigurationBroadcaster *, ConfigurationHints) override
std::optional< LocaleDataWrapper > moLocaleData
SvtSysLocaleOptions aSysLocaleOptions
std::optional< CharClass > moCharClass
CharClass & GetCharClass()
virtual ~SvtSysLocale_Impl() override
const LanguageTag & GetLanguageTag() const
const LanguageTag & GetUILanguageTag() const
SvtSysLocaleOptions & GetOptions() const
It is safe to store the pointers locally and use them AS LONG AS THE INSTANCE OF SvtSysLocale LIVES!...
std::shared_ptr< SvtSysLocale_Impl > pImpl
const LocaleDataWrapper & GetLocaleData() const
const CharClass & GetCharClass() const
void AddListener(utl::ConfigurationListener *pListener)
void RemoveListener(utl::ConfigurationListener const *pListener)
const LanguageTag & getLocale()
const LanguageTag & getLanguageTag()