ICU 4.8.1.1
4.8.1.1
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
common
unicode
normalizer2.h
Go to the documentation of this file.
1
/*
2
*******************************************************************************
3
*
4
* Copyright (C) 2009-2011, International Business Machines
5
* Corporation and others. All Rights Reserved.
6
*
7
*******************************************************************************
8
* file name: normalizer2.h
9
* encoding: US-ASCII
10
* tab size: 8 (not used)
11
* indentation:4
12
*
13
* created on: 2009nov22
14
* created by: Markus W. Scherer
15
*/
16
17
#ifndef __NORMALIZER2_H__
18
#define __NORMALIZER2_H__
19
25
#include "
unicode/utypes.h
"
26
27
#if !UCONFIG_NO_NORMALIZATION
28
29
#include "
unicode/uniset.h
"
30
#include "
unicode/unistr.h
"
31
#include "
unicode/unorm2.h
"
32
33
U_NAMESPACE_BEGIN
34
78
class
U_COMMON_API
Normalizer2
:
public
UObject
{
79
public
:
101
static
const
Normalizer2
*
102
getInstance(
const
char
*packageName,
103
const
char
*name,
104
UNormalization2Mode
mode,
105
UErrorCode
&errorCode);
106
117
UnicodeString
118
normalize
(
const
UnicodeString
&src,
UErrorCode
&errorCode)
const
{
119
UnicodeString
result;
120
normalize(src, result, errorCode);
121
return
result;
122
}
136
virtual
UnicodeString
&
137
normalize(
const
UnicodeString
&src,
138
UnicodeString
&dest,
139
UErrorCode
&errorCode)
const
= 0;
154
virtual
UnicodeString
&
155
normalizeSecondAndAppend(
UnicodeString
&first,
156
const
UnicodeString
&second,
157
UErrorCode
&errorCode)
const
= 0;
172
virtual
UnicodeString
&
173
append(
UnicodeString
&first,
174
const
UnicodeString
&second,
175
UErrorCode
&errorCode)
const
= 0;
176
190
virtual
UBool
191
getDecomposition(
UChar32
c,
UnicodeString
&decomposition)
const
= 0;
192
207
virtual
UBool
208
isNormalized(
const
UnicodeString
&s,
UErrorCode
&errorCode)
const
= 0;
209
225
virtual
UNormalizationCheckResult
226
quickCheck(
const
UnicodeString
&s,
UErrorCode
&errorCode)
const
= 0;
227
250
virtual
int32_t
251
spanQuickCheckYes(
const
UnicodeString
&s,
UErrorCode
&errorCode)
const
= 0;
252
266
virtual
UBool
hasBoundaryBefore(
UChar32
c)
const
= 0;
267
282
virtual
UBool
hasBoundaryAfter(
UChar32
c)
const
= 0;
283
297
virtual
UBool
isInert(
UChar32
c)
const
= 0;
298
299
private
:
300
// No ICU "poor man's RTTI" for this class nor its subclasses.
301
virtual
UClassID
getDynamicClassID
()
const
;
302
};
303
315
class
U_COMMON_API
FilteredNormalizer2
:
public
Normalizer2
{
316
public
:
327
FilteredNormalizer2
(
const
Normalizer2
&n2,
const
UnicodeSet
&filterSet) :
328
norm2(n2), set(filterSet) {}
329
343
virtual
UnicodeString
&
344
normalize
(
const
UnicodeString
&src,
345
UnicodeString
&dest,
346
UErrorCode
&errorCode)
const
;
361
virtual
UnicodeString
&
362
normalizeSecondAndAppend
(
UnicodeString
&first,
363
const
UnicodeString
&second,
364
UErrorCode
&errorCode)
const
;
379
virtual
UnicodeString
&
380
append
(
UnicodeString
&first,
381
const
UnicodeString
&second,
382
UErrorCode
&errorCode)
const
;
383
394
virtual
UBool
395
getDecomposition
(
UChar32
c,
UnicodeString
&decomposition)
const
;
396
408
virtual
UBool
409
isNormalized
(
const
UnicodeString
&s,
UErrorCode
&errorCode)
const
;
421
virtual
UNormalizationCheckResult
422
quickCheck
(
const
UnicodeString
&s,
UErrorCode
&errorCode)
const
;
434
virtual
int32_t
435
spanQuickCheckYes
(
const
UnicodeString
&s,
UErrorCode
&errorCode)
const
;
436
445
virtual
UBool
hasBoundaryBefore
(
UChar32
c)
const
;
446
455
virtual
UBool
hasBoundaryAfter
(
UChar32
c)
const
;
456
464
virtual
UBool
isInert
(
UChar32
c)
const
;
465
private
:
466
UnicodeString
&
467
normalize
(
const
UnicodeString
&src,
468
UnicodeString
&dest,
469
USetSpanCondition
spanCondition,
470
UErrorCode
&errorCode)
const
;
471
472
UnicodeString
&
473
normalizeSecondAndAppend
(
UnicodeString
&first,
474
const
UnicodeString
&second,
475
UBool
doNormalize,
476
UErrorCode
&errorCode)
const
;
477
478
const
Normalizer2
&norm2;
479
const
UnicodeSet
&
set
;
480
};
481
482
U_NAMESPACE_END
483
484
#endif // !UCONFIG_NO_NORMALIZATION
485
#endif // __NORMALIZER2_H__
Generated on Mon Dec 11 2017 18:07:28 for ICU 4.8.1.1 by
1.8.1.2