tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

uni2name.h (2506B)


      1 // © 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /*
      4 **********************************************************************
      5 *   Copyright (C) 2001-2007, International Business Machines
      6 *   Corporation and others.  All Rights Reserved.
      7 **********************************************************************
      8 *   Date        Name        Description
      9 *   06/06/01    aliu        Creation.
     10 **********************************************************************
     11 */
     12 #ifndef UNI2NAME_H
     13 #define UNI2NAME_H
     14 
     15 #include "unicode/utypes.h"
     16 
     17 #if !UCONFIG_NO_TRANSLITERATION
     18 
     19 #include "unicode/translit.h"
     20 
     21 U_NAMESPACE_BEGIN
     22 
     23 /**
     24 * A transliterator that performs character to name mapping.
     25 * It generates the Perl syntax \N{name}.
     26 * @author Alan Liu
     27 */
     28 class UnicodeNameTransliterator : public Transliterator {
     29 
     30 public:
     31 
     32    /**
     33     * Constructs a transliterator.
     34     * @param adoptedFilter the filter to be adopted.
     35     */
     36    UnicodeNameTransliterator(UnicodeFilter* adoptedFilter = nullptr);
     37 
     38    /**
     39     * Destructor.
     40     */
     41    virtual ~UnicodeNameTransliterator();
     42 
     43    /**
     44     * Copy constructor.
     45     */
     46    UnicodeNameTransliterator(const UnicodeNameTransliterator&);
     47 
     48    /**
     49     * Transliterator API.
     50     */
     51    virtual UnicodeNameTransliterator* clone() const override;
     52 
     53    /**
     54     * ICU "poor man's RTTI", returns a UClassID for the actual class.
     55     */
     56    virtual UClassID getDynamicClassID() const override;
     57 
     58    /**
     59     * ICU "poor man's RTTI", returns a UClassID for this class.
     60     */
     61    U_I18N_API static UClassID U_EXPORT2 getStaticClassID();
     62 
     63 protected:
     64 
     65    /**
     66     * Implements {@link Transliterator#handleTransliterate}.
     67     * @param text        the buffer holding transliterated and
     68     *                    untransliterated text
     69     * @param offset      the start and limit of the text, the position
     70     *                    of the cursor, and the start and limit of transliteration.
     71     * @param incremental if true, assume more text may be coming after
     72     *                    pos.contextLimit.  Otherwise, assume the text is complete.
     73     */
     74    virtual void handleTransliterate(Replaceable& text, UTransPosition& offset,
     75                                     UBool isIncremental) const override;
     76 
     77 private:
     78    /**
     79     * Assignment operator.
     80     */
     81    UnicodeNameTransliterator& operator=(const UnicodeNameTransliterator&);
     82 
     83 };
     84 
     85 U_NAMESPACE_END
     86 
     87 #endif /* #if !UCONFIG_NO_TRANSLITERATION */
     88 
     89 #endif