| Index: public/i18n/unicode/colldata.h
 | 
| diff --git a/public/i18n/unicode/colldata.h b/public/i18n/unicode/colldata.h
 | 
| deleted file mode 100644
 | 
| index af465f59208b865a818d91b89bc124f8781bd8ab..0000000000000000000000000000000000000000
 | 
| --- a/public/i18n/unicode/colldata.h
 | 
| +++ /dev/null
 | 
| @@ -1,452 +0,0 @@
 | 
| -/*
 | 
| - ******************************************************************************
 | 
| - *   Copyright (C) 1996-2010, International Business Machines                 *
 | 
| - *   Corporation and others.  All Rights Reserved.                            *
 | 
| - ******************************************************************************
 | 
| - */
 | 
| -
 | 
| -/**
 | 
| - * \file 
 | 
| - * \brief C++ API: Collation data used to compute minLengthInChars.
 | 
| - * \internal
 | 
| - */
 | 
| - 
 | 
| -#ifndef COLL_DATA_H
 | 
| -#define COLL_DATA_H
 | 
| -
 | 
| -#include "unicode/utypes.h"
 | 
| -
 | 
| -#if !UCONFIG_NO_COLLATION
 | 
| -
 | 
| -#include "unicode/uobject.h"
 | 
| -#include "unicode/ucol.h"
 | 
| -
 | 
| -U_NAMESPACE_BEGIN
 | 
| -
 | 
| -/**
 | 
| - * The size of the internal buffer for the Collator's short description string.
 | 
| - * @internal ICU 4.0.1 technology preview
 | 
| - */
 | 
| -#define KEY_BUFFER_SIZE 64
 | 
| -
 | 
| - /**
 | 
| -  * The size of the internal CE buffer in a <code>CEList</code> object
 | 
| -  * @internal ICU 4.0.1 technology preview
 | 
| -  */
 | 
| -#define CELIST_BUFFER_SIZE 4
 | 
| -
 | 
| -/**
 | 
| - * \def INSTRUMENT_CELIST
 | 
| - * Define this to enable the <code>CEList</code> objects to collect
 | 
| - * statistics.
 | 
| - * @internal ICU 4.0.1 technology preview
 | 
| - */
 | 
| -//#define INSTRUMENT_CELIST
 | 
| -
 | 
| - /**
 | 
| -  * The size of the initial list in a <code>StringList</code> object.
 | 
| -  * @internal ICU 4.0.1 technology preview
 | 
| -  */
 | 
| -#define STRING_LIST_BUFFER_SIZE 16
 | 
| -
 | 
| -/**
 | 
| - * \def INSTRUMENT_STRING_LIST
 | 
| - * Define this to enable the <code>StringList</code> objects to
 | 
| - * collect statistics.
 | 
| - * @internal ICU 4.0.1 technology preview
 | 
| - */
 | 
| -//#define INSTRUMENT_STRING_LIST
 | 
| -
 | 
| - /**
 | 
| -  * This object holds a list of CEs generated from a particular
 | 
| -  * <code>UnicodeString</code>
 | 
| -  *
 | 
| -  * @internal ICU 4.0.1 technology preview
 | 
| -  */
 | 
| -class U_I18N_API CEList : public UObject
 | 
| -{
 | 
| -public:
 | 
| -    /**
 | 
| -     * Construct a <code>CEList</code> object.
 | 
| -     *
 | 
| -     * @param coll - the Collator used to collect the CEs.
 | 
| -     * @param string - the string for which to collect the CEs.
 | 
| -     * @param status - will be set if any errors occur. 
 | 
| -     *
 | 
| -     * Note: if on return, status is set to an error code,
 | 
| -     * the only safe thing to do with this object is to call
 | 
| -     * the destructor.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    CEList(UCollator *coll, const UnicodeString &string, UErrorCode &status);
 | 
| -
 | 
| -    /**
 | 
| -     * The destructor.
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    ~CEList();
 | 
| -
 | 
| -    /**
 | 
| -     * Return the number of CEs in the list.
 | 
| -     *
 | 
| -     * @return the number of CEs in the list.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    int32_t size() const;
 | 
| -
 | 
| -    /**
 | 
| -     * Get a particular CE from the list.
 | 
| -     *
 | 
| -     * @param index - the index of the CE to return
 | 
| -     *
 | 
| -     * @return the CE, or <code>0</code> if <code>index</code> is out of range
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    uint32_t get(int32_t index) const;
 | 
| -
 | 
| -    /**
 | 
| -     * Check if the CEs in another <code>CEList</code> match the
 | 
| -     * suffix of this list starting at a give offset.
 | 
| -     *
 | 
| -     * @param offset - the offset of the suffix
 | 
| -     * @param other - the other <code>CEList</code>
 | 
| -     *
 | 
| -     * @return <code>TRUE</code> if the CEs match, <code>FALSE</code> otherwise.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    UBool matchesAt(int32_t offset, const CEList *other) const; 
 | 
| -
 | 
| -    /**
 | 
| -     * The index operator.
 | 
| -     *
 | 
| -     * @param index - the index
 | 
| -     *
 | 
| -     * @return a reference to the given CE in the list
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    uint32_t &operator[](int32_t index) const;
 | 
| -
 | 
| -    /**
 | 
| -     * UObject glue...
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    virtual UClassID getDynamicClassID() const;
 | 
| -    /**
 | 
| -     * UObject glue...
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    static UClassID getStaticClassID();
 | 
| -
 | 
| -private:
 | 
| -    void add(uint32_t ce, UErrorCode &status);
 | 
| -
 | 
| -    uint32_t ceBuffer[CELIST_BUFFER_SIZE];
 | 
| -    uint32_t *ces;
 | 
| -    int32_t listMax;
 | 
| -    int32_t listSize;
 | 
| -
 | 
| -#ifdef INSTRUMENT_CELIST
 | 
| -    static int32_t _active;
 | 
| -    static int32_t _histogram[10];
 | 
| -#endif
 | 
| -};
 | 
| -
 | 
| -/**
 | 
| - * StringList
 | 
| - *
 | 
| - * This object holds a list of <code>UnicodeString</code> objects.
 | 
| - *
 | 
| - * @internal ICU 4.0.1 technology preview
 | 
| - */
 | 
| -class U_I18N_API StringList : public UObject
 | 
| -{
 | 
| -public:
 | 
| -    /**
 | 
| -     * Construct an empty <code>StringList</code>
 | 
| -     *
 | 
| -     * @param status - will be set if any errors occur. 
 | 
| -     *
 | 
| -     * Note: if on return, status is set to an error code,
 | 
| -     * the only safe thing to do with this object is to call
 | 
| -     * the destructor.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    StringList(UErrorCode &status);
 | 
| -
 | 
| -    /**
 | 
| -     * The destructor.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    ~StringList();
 | 
| -
 | 
| -    /**
 | 
| -     * Add a string to the list.
 | 
| -     *
 | 
| -     * @param string - the string to add
 | 
| -     * @param status - will be set if any errors occur. 
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    void add(const UnicodeString *string, UErrorCode &status);
 | 
| -
 | 
| -    /**
 | 
| -     * Add an array of Unicode code points to the list.
 | 
| -     *
 | 
| -     * @param chars - the address of the array of code points
 | 
| -     * @param count - the number of code points in the array
 | 
| -     * @param status - will be set if any errors occur. 
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    void add(const UChar *chars, int32_t count, UErrorCode &status);
 | 
| -
 | 
| -    /**
 | 
| -     * Get a particular string from the list.
 | 
| -     *
 | 
| -     * @param index - the index of the string
 | 
| -     *
 | 
| -     * @return a pointer to the <code>UnicodeString</code> or <code>NULL</code> 
 | 
| -     *         if <code>index</code> is out of bounds.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    const UnicodeString *get(int32_t index) const;
 | 
| -
 | 
| -    /**
 | 
| -     * Get the number of stings in the list.
 | 
| -     *
 | 
| -     * @return the number of strings in the list.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    int32_t size() const;
 | 
| -
 | 
| -    /**
 | 
| -     * the UObject glue...
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    virtual UClassID getDynamicClassID() const;
 | 
| -    /**
 | 
| -     * the UObject glue...
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    static UClassID getStaticClassID();
 | 
| -
 | 
| -private:
 | 
| -    UnicodeString *strings;
 | 
| -    int32_t listMax;
 | 
| -    int32_t listSize;
 | 
| -
 | 
| -#ifdef INSTRUMENT_STRING_LIST
 | 
| -    static int32_t _lists;
 | 
| -    static int32_t _strings;
 | 
| -    static int32_t _histogram[101];
 | 
| -#endif
 | 
| -};
 | 
| -
 | 
| -/*
 | 
| - * Forward references to internal classes.
 | 
| - */
 | 
| -class StringToCEsMap;
 | 
| -class CEToStringsMap;
 | 
| -class CollDataCache;
 | 
| -
 | 
| -/**
 | 
| - * CollData
 | 
| - *
 | 
| - * This class holds the Collator-specific data needed to
 | 
| - * compute the length of the shortest string that can
 | 
| - * generate a partcular list of CEs.
 | 
| - *
 | 
| - * <code>CollData</code> objects are quite expensive to compute. Because
 | 
| - * of this, they are cached. When you call <code>CollData::open</code> it
 | 
| - * returns a reference counted cached object. When you call <code>CollData::close</code>
 | 
| - * the reference count on the object is decremented but the object is not deleted.
 | 
| - *
 | 
| - * If you do not need to reuse any unreferenced objects in the cache, you can call
 | 
| - * <code>CollData::flushCollDataCache</code>. If you no longer need any <code>CollData</code>
 | 
| - * objects, you can call <code>CollData::freeCollDataCache</code>
 | 
| - *
 | 
| - * @internal ICU 4.0.1 technology preview
 | 
| - */
 | 
| -class U_I18N_API CollData : public UObject
 | 
| -{
 | 
| -public:
 | 
| -    /**
 | 
| -     * Construct a <code>CollData</code> object.
 | 
| -     *
 | 
| -     * @param collator - the collator
 | 
| -     * @param status - will be set if any errors occur. 
 | 
| -     *
 | 
| -     * @return the <code>CollData</code> object. You must call
 | 
| -     *         <code>close</code> when you are done using the object.
 | 
| -     *
 | 
| -     * Note: if on return, status is set to an error code,
 | 
| -     * the only safe thing to do with this object is to call
 | 
| -     * <code>CollData::close</code>.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    static CollData *open(UCollator *collator, UErrorCode &status);
 | 
| -
 | 
| -    /**
 | 
| -     * Release a <code>CollData</code> object.
 | 
| -     *
 | 
| -     * @param collData - the object
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    static void close(CollData *collData);
 | 
| -
 | 
| -    /**
 | 
| -     * Get the <code>UCollator</code> object used to create this object.
 | 
| -     * The object returned may not be the exact object that was used to
 | 
| -     * create this object, but it will have the same behavior.
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    UCollator *getCollator() const;
 | 
| -
 | 
| -    /**
 | 
| -     * Get a list of all the strings which generate a list
 | 
| -     * of CEs starting with a given CE.
 | 
| -     *
 | 
| -     * @param ce - the CE
 | 
| -     *
 | 
| -     * return a <code>StringList</code> object containing all
 | 
| -     *        the stirngs, or <code>NULL</code> if there are
 | 
| -     *        no such strings.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview.
 | 
| -     */
 | 
| -    const StringList *getStringList(int32_t ce) const;
 | 
| -
 | 
| -    /**
 | 
| -     * Get a list of the CEs generated by a partcular stirng.
 | 
| -     *
 | 
| -     * @param string - the string
 | 
| -     *
 | 
| -     * @return a <code>CEList</code> object containt the CEs. You
 | 
| -     *         must call <code>freeCEList</code> when you are finished
 | 
| -     *         using the <code>CEList</code>/
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview.
 | 
| -     */
 | 
| -    const CEList *getCEList(const UnicodeString *string) const;
 | 
| -
 | 
| -    /**
 | 
| -     * Release a <code>CEList</code> returned by <code>getCEList</code>.
 | 
| -     *
 | 
| -     * @param list - the <code>CEList</code> to free.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    void freeCEList(const CEList *list);
 | 
| -
 | 
| -    /**
 | 
| -     * Return the length of the shortest string that will generate
 | 
| -     * the given list of CEs.
 | 
| -     *
 | 
| -     * @param ces - the CEs
 | 
| -     * @param offset - the offset of the first CE in the list to use.
 | 
| -     *
 | 
| -     * @return the length of the shortest string.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -    int32_t minLengthInChars(const CEList *ces, int32_t offset) const;
 | 
| -
 | 
| - 
 | 
| -    /**
 | 
| -     * Return the length of the shortest string that will generate
 | 
| -     * the given list of CEs.
 | 
| -     *
 | 
| -     * Note: the algorithm used to do this computation is recursive. To
 | 
| -     * limit the amount of recursion, a "history" list is used to record
 | 
| -     * the best answer starting at a particular offset in the list of CEs.
 | 
| -     * If the same offset is visited again during the recursion, the answer
 | 
| -     * in the history list is used.
 | 
| -     *
 | 
| -     * @param ces - the CEs
 | 
| -     * @param offset - the offset of the first CE in the list to use.
 | 
| -     * @param history - the history list. Must be at least as long as
 | 
| -     *                 the number of cEs in the <code>CEList</code>
 | 
| -     *
 | 
| -     * @return the length of the shortest string.
 | 
| -     *
 | 
| -     * @internal ICU 4.0.1 technology preview
 | 
| -     */
 | 
| -   int32_t minLengthInChars(const CEList *ces, int32_t offset, int32_t *history) const;
 | 
| -
 | 
| -   /**
 | 
| -    * UObject glue...
 | 
| -    * @internal ICU 4.0.1 technology preview
 | 
| -    */
 | 
| -    virtual UClassID getDynamicClassID() const;
 | 
| -   /**
 | 
| -    * UObject glue...
 | 
| -    * @internal ICU 4.0.1 technology preview
 | 
| -    */
 | 
| -    static UClassID getStaticClassID();
 | 
| -
 | 
| -    /**
 | 
| -     * <code>CollData</code> objects are expensive to compute, and so
 | 
| -     * may be cached. This routine will free the cached objects and delete
 | 
| -     * the cache.
 | 
| -     *
 | 
| -     * WARNING: Don't call this until you are have called <code>close</code>
 | 
| -     * for each <code>CollData</code> object that you have used. also,
 | 
| -     * DO NOT call this if another thread may be calling <code>flushCollDataCache</code>
 | 
| -     * at the same time.
 | 
| -     *
 | 
| -     * @internal 4.0.1 technology preview
 | 
| -     */
 | 
| -    static void freeCollDataCache();
 | 
| -
 | 
| -    /**
 | 
| -     * <code>CollData</code> objects are expensive to compute, and so
 | 
| -     * may be cached. This routine will remove any unused <code>CollData</code>
 | 
| -     * objects from the cache.
 | 
| -     *
 | 
| -     * @internal 4.0.1 technology preview
 | 
| -     */
 | 
| -    static void flushCollDataCache();
 | 
| -
 | 
| -private:
 | 
| -    friend class CollDataCache;
 | 
| -    friend class CollDataCacheEntry;
 | 
| -
 | 
| -    CollData(UCollator *collator, char *cacheKey, int32_t cachekeyLength, UErrorCode &status);
 | 
| -    ~CollData();
 | 
| -
 | 
| -    CollData();
 | 
| -
 | 
| -    static char *getCollatorKey(UCollator *collator, char *buffer, int32_t bufferLength);
 | 
| -
 | 
| -    static CollDataCache *getCollDataCache();
 | 
| -
 | 
| -    UCollator      *coll;
 | 
| -    StringToCEsMap *charsToCEList;
 | 
| -    CEToStringsMap *ceToCharsStartingWith;
 | 
| -
 | 
| -    char keyBuffer[KEY_BUFFER_SIZE];
 | 
| -    char *key;
 | 
| -
 | 
| -    static CollDataCache *collDataCache;
 | 
| -
 | 
| -    uint32_t minHan;
 | 
| -    uint32_t maxHan;
 | 
| -
 | 
| -    uint32_t jamoLimits[4];
 | 
| -};
 | 
| -
 | 
| -U_NAMESPACE_END
 | 
| -
 | 
| -#endif // #if !UCONFIG_NO_COLLATION
 | 
| -#endif // #ifndef COLL_DATA_H
 | 
| 
 |