| Index: public/common/unicode/idna.h
 | 
| diff --git a/public/common/unicode/idna.h b/public/common/unicode/idna.h
 | 
| deleted file mode 100644
 | 
| index 4047d967e46107cd15f35b961657fa3c68f68522..0000000000000000000000000000000000000000
 | 
| --- a/public/common/unicode/idna.h
 | 
| +++ /dev/null
 | 
| @@ -1,321 +0,0 @@
 | 
| -/*
 | 
| -*******************************************************************************
 | 
| -*   Copyright (C) 2010, International Business Machines
 | 
| -*   Corporation and others.  All Rights Reserved.
 | 
| -*******************************************************************************
 | 
| -*   file name:  idna.h
 | 
| -*   encoding:   US-ASCII
 | 
| -*   tab size:   8 (not used)
 | 
| -*   indentation:4
 | 
| -*
 | 
| -*   created on: 2010mar05
 | 
| -*   created by: Markus W. Scherer
 | 
| -*/
 | 
| -
 | 
| -#ifndef __IDNA_H__
 | 
| -#define __IDNA_H__
 | 
| -
 | 
| -/**
 | 
| - * \file
 | 
| - * \brief C++ API: Internationalizing Domain Names in Applications (IDNA)
 | 
| - */
 | 
| -
 | 
| -#include "unicode/utypes.h"
 | 
| -
 | 
| -#if !UCONFIG_NO_IDNA
 | 
| -
 | 
| -#include "unicode/bytestream.h"
 | 
| -#include "unicode/stringpiece.h"
 | 
| -#include "unicode/uidna.h"
 | 
| -#include "unicode/unistr.h"
 | 
| -
 | 
| -U_NAMESPACE_BEGIN
 | 
| -
 | 
| -class U_COMMON_API IDNAInfo;
 | 
| -
 | 
| -/**
 | 
| - * 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 ICU 4.6
 | 
| - */
 | 
| -class U_COMMON_API IDNA : public UObject {
 | 
| -public:
 | 
| -    /**
 | 
| -     * 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.
 | 
| -     *
 | 
| -     * @param options Bit set to modify the processing and error checking.
 | 
| -     *                See option bit set values in uidna.h.
 | 
| -     * @param errorCode Standard 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.)
 | 
| -     * @return the UTS #46 IDNA instance, if successful
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    static IDNA *
 | 
| -    createUTS46Instance(uint32_t options, UErrorCode &errorCode);
 | 
| -
 | 
| -    /**
 | 
| -     * 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.
 | 
| -     *
 | 
| -     * @param label Input domain name label
 | 
| -     * @param dest Destination string object
 | 
| -     * @param info Output container of IDNA processing details.
 | 
| -     * @param errorCode Standard 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.)
 | 
| -     * @return dest
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    virtual UnicodeString &
 | 
| -    labelToASCII(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.
 | 
| -     * 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.
 | 
| -     *
 | 
| -     * @param label Input domain name label
 | 
| -     * @param dest Destination string object
 | 
| -     * @param info Output container of IDNA processing details.
 | 
| -     * @param errorCode Standard 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.)
 | 
| -     * @return dest
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    virtual UnicodeString &
 | 
| -    labelToUnicode(const UnicodeString &label, UnicodeString &dest,
 | 
| -                   IDNAInfo &info, UErrorCode &errorCode) const = 0;
 | 
| -
 | 
| -    /**
 | 
| -     * 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.
 | 
| -     *
 | 
| -     * @param name Input domain name
 | 
| -     * @param dest Destination string object
 | 
| -     * @param info Output container of IDNA processing details.
 | 
| -     * @param errorCode Standard 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.)
 | 
| -     * @return dest
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    virtual UnicodeString &
 | 
| -    nameToASCII(const UnicodeString &name, UnicodeString &dest,
 | 
| -                IDNAInfo &info, UErrorCode &errorCode) const = 0;
 | 
| -
 | 
| -    /**
 | 
| -     * 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.
 | 
| -     *
 | 
| -     * @param name Input domain name
 | 
| -     * @param dest Destination string object
 | 
| -     * @param info Output container of IDNA processing details.
 | 
| -     * @param errorCode Standard 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.)
 | 
| -     * @return dest
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    virtual UnicodeString &
 | 
| -    nameToUnicode(const UnicodeString &name, UnicodeString &dest,
 | 
| -                  IDNAInfo &info, UErrorCode &errorCode) const = 0;
 | 
| -
 | 
| -    // UTF-8 versions of the processing methods ---------------------------- ***
 | 
| -
 | 
| -    /**
 | 
| -     * Converts a single domain name label into its ASCII form for DNS lookup.
 | 
| -     * UTF-8 version of labelToASCII(), same behavior.
 | 
| -     *
 | 
| -     * @param label Input domain name label
 | 
| -     * @param dest Destination byte sink; Flush()ed if successful
 | 
| -     * @param info Output container of IDNA processing details.
 | 
| -     * @param errorCode Standard 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.)
 | 
| -     * @return dest
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    virtual void
 | 
| -    labelToASCII_UTF8(const StringPiece &label, ByteSink &dest,
 | 
| -                      IDNAInfo &info, UErrorCode &errorCode) const;
 | 
| -
 | 
| -    /**
 | 
| -     * Converts a single domain name label into its Unicode form for human-readable display.
 | 
| -     * UTF-8 version of labelToUnicode(), same behavior.
 | 
| -     *
 | 
| -     * @param label Input domain name label
 | 
| -     * @param dest Destination byte sink; Flush()ed if successful
 | 
| -     * @param info Output container of IDNA processing details.
 | 
| -     * @param errorCode Standard 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.)
 | 
| -     * @return dest
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    virtual void
 | 
| -    labelToUnicodeUTF8(const StringPiece &label, ByteSink &dest,
 | 
| -                       IDNAInfo &info, UErrorCode &errorCode) const;
 | 
| -
 | 
| -    /**
 | 
| -     * Converts a whole domain name into its ASCII form for DNS lookup.
 | 
| -     * UTF-8 version of nameToASCII(), same behavior.
 | 
| -     *
 | 
| -     * @param name Input domain name
 | 
| -     * @param dest Destination byte sink; Flush()ed if successful
 | 
| -     * @param info Output container of IDNA processing details.
 | 
| -     * @param errorCode Standard 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.)
 | 
| -     * @return dest
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    virtual void
 | 
| -    nameToASCII_UTF8(const StringPiece &name, ByteSink &dest,
 | 
| -                     IDNAInfo &info, UErrorCode &errorCode) const;
 | 
| -
 | 
| -    /**
 | 
| -     * Converts a whole domain name into its Unicode form for human-readable display.
 | 
| -     * UTF-8 version of nameToUnicode(), same behavior.
 | 
| -     *
 | 
| -     * @param name Input domain name
 | 
| -     * @param dest Destination byte sink; Flush()ed if successful
 | 
| -     * @param info Output container of IDNA processing details.
 | 
| -     * @param errorCode Standard 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.)
 | 
| -     * @return dest
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    virtual void
 | 
| -    nameToUnicodeUTF8(const StringPiece &name, ByteSink &dest,
 | 
| -                      IDNAInfo &info, UErrorCode &errorCode) const;
 | 
| -
 | 
| -private:
 | 
| -    // No ICU "poor man's RTTI" for this class nor its subclasses.
 | 
| -    virtual UClassID getDynamicClassID() const;
 | 
| -};
 | 
| -
 | 
| -class UTS46;
 | 
| -
 | 
| -/**
 | 
| - * Output container for IDNA processing errors.
 | 
| - * The IDNAInfo class is not suitable for subclassing.
 | 
| - * @draft ICU 4.6
 | 
| - */
 | 
| -class U_COMMON_API IDNAInfo : public UMemory {
 | 
| -public:
 | 
| -    /**
 | 
| -     * Constructor for stack allocation.
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    IDNAInfo() : errors(0), labelErrors(0), isTransDiff(FALSE), isBiDi(FALSE), isOkBiDi(TRUE) {}
 | 
| -    /**
 | 
| -     * Were there IDNA processing errors?
 | 
| -     * @return TRUE if there were processing errors
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    UBool hasErrors() const { return errors!=0; }
 | 
| -    /**
 | 
| -     * Returns a bit set indicating IDNA processing errors.
 | 
| -     * See UIDNA_ERROR_... constants in uidna.h.
 | 
| -     * @return bit set of processing errors
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    uint32_t getErrors() const { return errors; }
 | 
| -    /**
 | 
| -     * Returns TRUE if transitional and nontransitional processing produce different results.
 | 
| -     * This is the case when the input label or domain name contains
 | 
| -     * one or more deviation characters outside a Punycode label (see UTS #46).
 | 
| -     * <ul>
 | 
| -     * <li>With nontransitional processing, such characters are
 | 
| -     * copied to the destination string.
 | 
| -     * <li>With transitional processing, such characters are
 | 
| -     * mapped (sharp s/sigma) or removed (joiner/nonjoiner).
 | 
| -     * </ul>
 | 
| -     * @return TRUE if transitional and nontransitional processing produce different results
 | 
| -     * @draft ICU 4.6
 | 
| -     */
 | 
| -    UBool isTransitionalDifferent() const { return isTransDiff; }
 | 
| -
 | 
| -private:
 | 
| -    friend class UTS46;
 | 
| -
 | 
| -    IDNAInfo(const IDNAInfo &other);  // no copying
 | 
| -    IDNAInfo &operator=(const IDNAInfo &other);  // no copying
 | 
| -
 | 
| -    void reset() {
 | 
| -        errors=labelErrors=0;
 | 
| -        isTransDiff=FALSE;
 | 
| -        isBiDi=FALSE;
 | 
| -        isOkBiDi=TRUE;
 | 
| -    }
 | 
| -
 | 
| -    uint32_t errors, labelErrors;
 | 
| -    UBool isTransDiff;
 | 
| -    UBool isBiDi;
 | 
| -    UBool isOkBiDi;
 | 
| -};
 | 
| -
 | 
| -U_NAMESPACE_END
 | 
| -
 | 
| -#endif  // UCONFIG_NO_IDNA
 | 
| -#endif  // __IDNA_H__
 | 
| 
 |