ICU 4.8.1.1  4.8.1.1
Public Member Functions | Static Public Member Functions
IDNA Class Reference

Abstract base class for IDNA processing. More...

#include <idna.h>

Inheritance diagram for IDNA:
UObject UMemory

Public Member Functions

virtual UnicodeStringlabelToASCII (const UnicodeString &label, UnicodeString &dest, IDNAInfo &info, UErrorCode &errorCode) const =0
 Converts a single domain name label into its ASCII form for DNS lookup.
virtual UnicodeStringlabelToUnicode (const UnicodeString &label, UnicodeString &dest, IDNAInfo &info, UErrorCode &errorCode) const =0
 Converts a single domain name label into its Unicode form for human-readable display.
virtual UnicodeStringnameToASCII (const UnicodeString &name, UnicodeString &dest, IDNAInfo &info, UErrorCode &errorCode) const =0
 Converts a whole domain name into its ASCII form for DNS lookup.
virtual UnicodeStringnameToUnicode (const UnicodeString &name, UnicodeString &dest, IDNAInfo &info, UErrorCode &errorCode) const =0
 Converts a whole domain name into its Unicode form for human-readable display.
virtual void labelToASCII_UTF8 (const StringPiece &label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const
 Converts a single domain name label into its ASCII form for DNS lookup.
virtual void labelToUnicodeUTF8 (const StringPiece &label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const
 Converts a single domain name label into its Unicode form for human-readable display.
virtual void nameToASCII_UTF8 (const StringPiece &name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const
 Converts a whole domain name into its ASCII form for DNS lookup.
virtual void nameToUnicodeUTF8 (const StringPiece &name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const
 Converts a whole domain name into its Unicode form for human-readable display.

Static Public Member Functions

static IDNAcreateUTS46Instance (uint32_t options, UErrorCode &errorCode)
 Returns an IDNA instance which implements UTS #46.

Detailed Description

Abstract base class for IDNA processing.

See http://www.unicode.org/reports/tr46/ and http://www.ietf.org/rfc/rfc3490.txt

The IDNA class is not intended for public subclassing.

This C++ API currently only implements UTS #46. The uidna.h C API implements both UTS #46 (functions using UIDNA service object) and IDNA2003 (functions that do not use a service object).

Draft:
This API may be changed in the future versions and was introduced in ICU 4.6

Definition at line 48 of file idna.h.


Member Function Documentation

static IDNA* IDNA::createUTS46Instance ( uint32_t  options,
UErrorCode errorCode 
) [static]

Returns an IDNA instance which implements UTS #46.

Returns an unmodifiable instance, owned by the caller. Cache it for multiple operations, and delete it when done. The instance is thread-safe, that is, it can be used concurrently.

UTS #46 defines Unicode IDNA Compatibility Processing, updated to the latest version of Unicode and compatible with both IDNA2003 and IDNA2008.

The worker functions use transitional processing, including deviation mappings, unless UIDNA_NONTRANSITIONAL_TO_ASCII or UIDNA_NONTRANSITIONAL_TO_UNICODE is used in which case the deviation characters are passed through without change.

Disallowed characters are mapped to U+FFFD.

For available options see the uidna.h header. Operations with the UTS #46 instance do not support the UIDNA_ALLOW_UNASSIGNED option.

By default, the UTS #46 implementation allows all ASCII characters (as valid or mapped). When the UIDNA_USE_STD3_RULES option is used, ASCII characters other than letters, digits, hyphen (LDH) and dot/full stop are disallowed and mapped to U+FFFD.

Parameters:
optionsBit set to modify the processing and error checking. See option bit set values in uidna.h.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns:
the UTS #46 IDNA instance, if successful
Draft:
This API may be changed in the future versions and was introduced in ICU 4.6
virtual UnicodeString& IDNA::labelToASCII ( const UnicodeString label,
UnicodeString dest,
IDNAInfo info,
UErrorCode errorCode 
) const [pure virtual]

Converts a single domain name label into its ASCII form for DNS lookup.

If any processing step fails, then info.hasErrors() will be TRUE and the result might not be an ASCII string. The label might be modified according to the types of errors. Labels with severe errors will be left in (or turned into) their Unicode form.

The UErrorCode indicates an error only in exceptional cases, such as a U_MEMORY_ALLOCATION_ERROR.

Parameters:
labelInput domain name label
destDestination string object
infoOutput container of IDNA processing details.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns:
dest
Draft:
This API may be changed in the future versions and was introduced in ICU 4.6
virtual void IDNA::labelToASCII_UTF8 ( const StringPiece label,
ByteSink dest,
IDNAInfo info,
UErrorCode errorCode 
) const [virtual]

Converts a single domain name label into its ASCII form for DNS lookup.

UTF-8 version of labelToASCII(), same behavior.

Parameters:
labelInput domain name label
destDestination byte sink; Flush()ed if successful
infoOutput container of IDNA processing details.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns:
dest
Draft:
This API may be changed in the future versions and was introduced in ICU 4.6
virtual UnicodeString& IDNA::labelToUnicode ( const UnicodeString label,
UnicodeString dest,
IDNAInfo info,
UErrorCode errorCode 
) const [pure virtual]

Converts a single domain name label into its Unicode form for human-readable display.

If any processing step fails, then info.hasErrors() will be TRUE. The label might be modified according to the types of errors.

The UErrorCode indicates an error only in exceptional cases, such as a U_MEMORY_ALLOCATION_ERROR.

Parameters:
labelInput domain name label
destDestination string object
infoOutput container of IDNA processing details.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns:
dest
Draft:
This API may be changed in the future versions and was introduced in ICU 4.6
virtual void IDNA::labelToUnicodeUTF8 ( const StringPiece label,
ByteSink dest,
IDNAInfo info,
UErrorCode errorCode 
) const [virtual]

Converts a single domain name label into its Unicode form for human-readable display.

UTF-8 version of labelToUnicode(), same behavior.

Parameters:
labelInput domain name label
destDestination byte sink; Flush()ed if successful
infoOutput container of IDNA processing details.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns:
dest
Draft:
This API may be changed in the future versions and was introduced in ICU 4.6
virtual UnicodeString& IDNA::nameToASCII ( const UnicodeString name,
UnicodeString dest,
IDNAInfo info,
UErrorCode errorCode 
) const [pure virtual]

Converts a whole domain name into its ASCII form for DNS lookup.

If any processing step fails, then info.hasErrors() will be TRUE and the result might not be an ASCII string. The domain name might be modified according to the types of errors. Labels with severe errors will be left in (or turned into) their Unicode form.

The UErrorCode indicates an error only in exceptional cases, such as a U_MEMORY_ALLOCATION_ERROR.

Parameters:
nameInput domain name
destDestination string object
infoOutput container of IDNA processing details.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns:
dest
Draft:
This API may be changed in the future versions and was introduced in ICU 4.6
virtual void IDNA::nameToASCII_UTF8 ( const StringPiece name,
ByteSink dest,
IDNAInfo info,
UErrorCode errorCode 
) const [virtual]

Converts a whole domain name into its ASCII form for DNS lookup.

UTF-8 version of nameToASCII(), same behavior.

Parameters:
nameInput domain name
destDestination byte sink; Flush()ed if successful
infoOutput container of IDNA processing details.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns:
dest
Draft:
This API may be changed in the future versions and was introduced in ICU 4.6
virtual UnicodeString& IDNA::nameToUnicode ( const UnicodeString name,
UnicodeString dest,
IDNAInfo info,
UErrorCode errorCode 
) const [pure virtual]

Converts a whole domain name into its Unicode form for human-readable display.

If any processing step fails, then info.hasErrors() will be TRUE. The domain name might be modified according to the types of errors.

The UErrorCode indicates an error only in exceptional cases, such as a U_MEMORY_ALLOCATION_ERROR.

Parameters:
nameInput domain name
destDestination string object
infoOutput container of IDNA processing details.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns:
dest
Draft:
This API may be changed in the future versions and was introduced in ICU 4.6
virtual void IDNA::nameToUnicodeUTF8 ( const StringPiece name,
ByteSink dest,
IDNAInfo info,
UErrorCode errorCode 
) const [virtual]

Converts a whole domain name into its Unicode form for human-readable display.

UTF-8 version of nameToUnicode(), same behavior.

Parameters:
nameInput domain name
destDestination byte sink; Flush()ed if successful
infoOutput container of IDNA processing details.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns:
dest
Draft:
This API may be changed in the future versions and was introduced in ICU 4.6

The documentation for this class was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines