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
idna.h
Go to the documentation of this file.
1
/*
2
*******************************************************************************
3
* Copyright (C) 2010, International Business Machines
4
* Corporation and others. All Rights Reserved.
5
*******************************************************************************
6
* file name: idna.h
7
* encoding: US-ASCII
8
* tab size: 8 (not used)
9
* indentation:4
10
*
11
* created on: 2010mar05
12
* created by: Markus W. Scherer
13
*/
14
15
#ifndef __IDNA_H__
16
#define __IDNA_H__
17
23
#include "
unicode/utypes.h
"
24
25
#if !UCONFIG_NO_IDNA
26
27
#include "
unicode/bytestream.h
"
28
#include "
unicode/stringpiece.h
"
29
#include "
unicode/uidna.h
"
30
#include "
unicode/unistr.h
"
31
32
U_NAMESPACE_BEGIN
33
34
class
U_COMMON_API
IDNAInfo
;
35
48
class
U_COMMON_API
IDNA
:
public
UObject
{
49
public
:
83
static
IDNA
*
84
createUTS46Instance(uint32_t options,
UErrorCode
&errorCode);
85
106
virtual
UnicodeString
&
107
labelToASCII(
const
UnicodeString
&label,
UnicodeString
&dest,
108
IDNAInfo
&info,
UErrorCode
&errorCode)
const
= 0;
109
128
virtual
UnicodeString
&
129
labelToUnicode(
const
UnicodeString
&label,
UnicodeString
&dest,
130
IDNAInfo
&info,
UErrorCode
&errorCode)
const
= 0;
131
152
virtual
UnicodeString
&
153
nameToASCII(
const
UnicodeString
&name,
UnicodeString
&dest,
154
IDNAInfo
&info,
UErrorCode
&errorCode)
const
= 0;
155
174
virtual
UnicodeString
&
175
nameToUnicode(
const
UnicodeString
&name,
UnicodeString
&dest,
176
IDNAInfo
&info,
UErrorCode
&errorCode)
const
= 0;
177
178
// UTF-8 versions of the processing methods ---------------------------- ***
179
194
virtual
void
195
labelToASCII_UTF8(
const
StringPiece
&label,
ByteSink
&dest,
196
IDNAInfo
&info,
UErrorCode
&errorCode)
const
;
197
212
virtual
void
213
labelToUnicodeUTF8(
const
StringPiece
&label,
ByteSink
&dest,
214
IDNAInfo
&info,
UErrorCode
&errorCode)
const
;
215
230
virtual
void
231
nameToASCII_UTF8(
const
StringPiece
&name,
ByteSink
&dest,
232
IDNAInfo
&info,
UErrorCode
&errorCode)
const
;
233
248
virtual
void
249
nameToUnicodeUTF8(
const
StringPiece
&name,
ByteSink
&dest,
250
IDNAInfo
&info,
UErrorCode
&errorCode)
const
;
251
252
private
:
253
// No ICU "poor man's RTTI" for this class nor its subclasses.
254
virtual
UClassID
getDynamicClassID
()
const
;
255
};
256
257
class
UTS46;
258
264
class
U_COMMON_API
IDNAInfo
:
public
UMemory
{
265
public
:
270
IDNAInfo
() : errors(0), labelErrors(0), isTransDiff(
FALSE
), isBiDi(
FALSE
), isOkBiDi(
TRUE
) {}
276
UBool
hasErrors
()
const
{
return
errors!=0; }
283
uint32_t
getErrors
()
const
{
return
errors; }
297
UBool
isTransitionalDifferent
()
const
{
return
isTransDiff; }
298
299
private
:
300
friend
class
UTS46;
301
302
IDNAInfo
(
const
IDNAInfo
&other);
// no copying
303
IDNAInfo
&operator=(
const
IDNAInfo
&other);
// no copying
304
305
void
reset() {
306
errors=labelErrors=0;
307
isTransDiff=
FALSE
;
308
isBiDi=
FALSE
;
309
isOkBiDi=
TRUE
;
310
}
311
312
uint32_t errors, labelErrors;
313
UBool
isTransDiff;
314
UBool
isBiDi;
315
UBool
isOkBiDi;
316
};
317
318
U_NAMESPACE_END
319
320
#endif // UCONFIG_NO_IDNA
321
#endif // __IDNA_H__
Generated on Mon Mar 16 2015 17:10:52 for ICU 4.8.1.1 by
1.8.1.2