CollData Class Reference

CollData. More...

#include <colldata.h>

Inheritance diagram for CollData:
UObject UMemory

Public Member Functions

UCollatorgetCollator () const
 Get the UCollator object used to create this object.
const StringListgetStringList (int32_t ce) const
 Get a list of all the strings which generate a list of CEs starting with a given CE.
const CEListgetCEList (const UnicodeString *string) const
 Get a list of the CEs generated by a partcular stirng.
void freeCEList (const CEList *list)
 Release a CEList returned by getCEList.
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.
int32_t minLengthInChars (const CEList *ces, int32_t offset, int32_t *history) const
 Return the length of the shortest string that will generate the given list of CEs.
virtual UClassID getDynamicClassID () const
 UObject glue.

Static Public Member Functions

static CollDataopen (UCollator *collator, UErrorCode &status)
 Construct a CollData object.
static void close (CollData *collData)
 Release a CollData object.
static UClassID getStaticClassID ()
 UObject glue.
static void freeCollDataCache ()
 CollData objects are expensive to compute, and so may be cached.
static void flushCollDataCache ()
 CollData objects are expensive to compute, and so may be cached.

Friends

class CollDataCache
class CollDataCacheEntry

Detailed Description

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.

CollData objects are quite expensive to compute. Because of this, they are cached. When you call CollData::open it returns a reference counted cached object. When you call CollData::close 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 CollData::flushCollDataCache. If you no longer need any CollData objects, you can call CollData::freeCollDataCache

Internal:
Do not use. This API is for internal use only. ICU 4.0.1 technology preview

Definition at line 267 of file colldata.h.


Member Function Documentation

static void CollData::close ( CollData collData  )  [static]

Release a CollData object.

Parameters:
collData - the object
Internal:
Do not use. This API is for internal use only. ICU 4.0.1 technology preview
static void CollData::flushCollDataCache (  )  [static]

CollData objects are expensive to compute, and so may be cached.

This routine will remove any unused CollData objects from the cache.

Internal:
Do not use. This API is for internal use only. 4.0.1 technology preview
void CollData::freeCEList ( const CEList list  ) 

Release a CEList returned by getCEList.

Parameters:
list - the CEList to free.
Internal:
Do not use. This API is for internal use only. ICU 4.0.1 technology preview
static void CollData::freeCollDataCache (  )  [static]

CollData 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 close for each CollData object that you have used. also, DO NOT call this if another thread may be calling flushCollDataCache at the same time.

Internal:
Do not use. This API is for internal use only. 4.0.1 technology preview
const CEList* CollData::getCEList ( const UnicodeString string  )  const

Get a list of the CEs generated by a partcular stirng.

Parameters:
string - the string
Returns:
a CEList object containt the CEs. You must call freeCEList when you are finished using the CEList/
Internal:
Do not use. This API is for internal use only. ICU 4.0.1 technology preview.
UCollator* CollData::getCollator (  )  const

Get the UCollator 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.

virtual UClassID CollData::getDynamicClassID (  )  const [virtual]

UObject glue.

..

Implements UObject.

static UClassID CollData::getStaticClassID (  )  [static]

UObject glue.

..

const StringList* CollData::getStringList ( int32_t  ce  )  const

Get a list of all the strings which generate a list of CEs starting with a given CE.

Parameters:
ce - the CE

return a StringList object containing all the stirngs, or NULL if there are no such strings.

Internal:
Do not use. This API is for internal use only. ICU 4.0.1 technology preview.
int32_t CollData::minLengthInChars ( const CEList ces,
int32_t  offset,
int32_t *  history 
) 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.

Parameters:
ces - the CEs
offset - the offset of the first CE in the list to use.
history - the history list. Must be at least as long as the number of cEs in the CEList
Returns:
the length of the shortest string.
Internal:
Do not use. This API is for internal use only. ICU 4.0.1 technology preview
int32_t CollData::minLengthInChars ( const CEList ces,
int32_t  offset 
) const

Return the length of the shortest string that will generate the given list of CEs.

Parameters:
ces - the CEs
offset - the offset of the first CE in the list to use.
Returns:
the length of the shortest string.
Internal:
Do not use. This API is for internal use only. ICU 4.0.1 technology preview
static CollData* CollData::open ( UCollator collator,
UErrorCode status 
) [static]

Construct a CollData object.

Parameters:
collator - the collator
status - will be set if any errors occur.
Returns:
the CollData object. You must call close 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 CollData::close.

Internal:
Do not use. This API is for internal use only. ICU 4.0.1 technology preview

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

Generated on Sat Jan 23 15:17:42 2010 for ICU 4.3.4 by  doxygen 1.6.1