Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Classes | Macros | Functions
SkUnicode_icupriv.h File Reference
#include <unicode/ubidi.h>
#include <unicode/ubrk.h>
#include <unicode/uchar.h>
#include <unicode/uloc.h>
#include <unicode/uscript.h>
#include <unicode/ustring.h>
#include <unicode/utext.h>
#include <unicode/utypes.h>
#include <cstdint>
#include <memory>

Go to the source code of this file.

Classes

struct  SkICULib
 

Macros

#define SKICU_EMIT_FUNCS
 
#define SKICU_FUNC(funcname)   decltype(funcname)* f_##funcname;
 

Functions

std::unique_ptr< SkICULibSkLoadICULib ()
 
const SkICULibSkGetICULib ()
 

Macro Definition Documentation

◆ SKICU_EMIT_FUNCS

#define SKICU_EMIT_FUNCS
Value:
SKICU_FUNC(u_errorName) \
SKICU_FUNC(u_hasBinaryProperty) \
SKICU_FUNC(u_getIntPropertyValue) \
SKICU_FUNC(u_iscntrl) \
SKICU_FUNC(u_isspace) \
SKICU_FUNC(u_isWhitespace) \
SKICU_FUNC(u_strToUpper) \
SKICU_FUNC(ubidi_close) \
SKICU_FUNC(ubidi_getDirection) \
SKICU_FUNC(ubidi_getLength) \
SKICU_FUNC(ubidi_getLevelAt) \
SKICU_FUNC(ubidi_openSized) \
SKICU_FUNC(ubidi_reorderVisual) \
SKICU_FUNC(ubidi_setPara) \
SKICU_FUNC(ubrk_close) \
SKICU_FUNC(ubrk_current) \
SKICU_FUNC(ubrk_first) \
SKICU_FUNC(ubrk_following) \
SKICU_FUNC(ubrk_getRuleStatus) \
SKICU_FUNC(ubrk_next) \
SKICU_FUNC(ubrk_open) \
SKICU_FUNC(ubrk_preceding) \
SKICU_FUNC(ubrk_setText) \
SKICU_FUNC(ubrk_setUText) \
SKICU_FUNC(uloc_forLanguageTag) \
SKICU_FUNC(uloc_getDefault) \
SKICU_FUNC(uscript_getScript) \
SKICU_FUNC(utext_close) \
SKICU_FUNC(utext_openUChars) \
SKICU_FUNC(utext_openUTF8) \
#define SKICU_FUNC(funcname)

Definition at line 21 of file SkUnicode_icupriv.h.

54 {
56
57 // ubrk_clone added as draft in ICU69 and Android API 31 (first ICU NDK).
58 // ubrk_safeClone deprecated in ICU69 and not exposed by Android.
59 UBreakIterator* (*f_ubrk_clone_)(const UBreakIterator*, UErrorCode*);
60 UBreakIterator* (*f_ubrk_safeClone_)(const UBreakIterator*, void*, int32_t*, UErrorCode*);
61
62 // ubrk_getLocaleByType not exposed by Android.
63 const char* (*f_ubrk_getLocaleByType)(const UBreakIterator*, ULocDataLocaleType, UErrorCode*);
64};
65#undef SKICU_FUNC
66
67// Platform/config specific ICU factory.
68std::unique_ptr<SkICULib> SkLoadICULib();
69
70// Get cached already loaded ICU library.
71const SkICULib* SkGetICULib();
72
73#endif // SkUnicode_icupriv_DEFINED
const SkICULib * SkGetICULib()
std::unique_ptr< SkICULib > SkLoadICULib()
#define SKICU_EMIT_FUNCS

◆ SKICU_FUNC

#define SKICU_FUNC (   funcname)    decltype(funcname)* f_##funcname;

Definition at line 53 of file SkUnicode_icupriv.h.

Function Documentation

◆ SkGetICULib()

const SkICULib * SkGetICULib ( )

Definition at line 49 of file SkUnicode_icu.cpp.

49 {
50 static const auto gICU = SkLoadICULib();
51 return gICU.get();
52}
std::unique_ptr< SkICULib > SkLoadICULib()

◆ SkLoadICULib()

std::unique_ptr< SkICULib > SkLoadICULib ( )

Definition at line 59 of file SkUnicode_icu_builtin.cpp.

59 {
60 return std::make_unique<SkICULib>(SkICULib{
62 &SkUbrkClone<const UBreakIterator*>::clone,
63 nullptr,
64 &SkUbrkGetLocaleByType<const UBreakIterator*>::getLocaleByType,
65 });
66}