intl/icu/source/i18n/ucol_cnt.h

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /*
     2 *******************************************************************************
     3 *
     4 *   Copyright (C) 2001-2008, International Business Machines
     5 *   Corporation and others.  All Rights Reserved.
     6 *
     7 *******************************************************************************
     8 *   file name:  ucol_tok.cpp
     9 *   encoding:   US-ASCII
    10 *   tab size:   8 (not used)
    11 *   indentation:4
    12 *
    13 *   created 02/22/2001
    14 *   created by: Vladimir Weinstein
    15 *
    16 * This module maintains a contraction table structure in expanded form
    17 * and provides means to flatten this structure
    18 * 
    19 */
    21 #ifndef UCOL_CNTTABLE_H
    22 #define UCOL_CNTTABLE_H
    24 #include "unicode/utypes.h"
    26 #if !UCONFIG_NO_COLLATION
    28 #include "utrie.h"
    29 #include "ucol_imp.h"
    31 U_CDECL_BEGIN
    33 #define UPRV_CNTTAB_NEWELEMENT 0xFFFFFF
    35 #define isCntTableElement(CE) (isSpecial((CE)) && \
    36 ((getCETag((CE)) == CONTRACTION_TAG)||(getCETag((CE)) == SPEC_PROC_TAG)))
    38 typedef struct ContractionTable ContractionTable;
    39 struct ContractionTable {
    40     UChar *codePoints;
    41     uint32_t *CEs;
    42     uint32_t position;
    43     uint32_t size;
    44 };
    46 struct CntTable {
    47     ContractionTable **elements;
    48     /*CompactEIntArray *mapping;*/
    49     UNewTrie *mapping;
    50     UChar *codePoints;
    51     uint32_t *CEs;
    52     int32_t *offsets;
    53     int32_t position;
    54     int32_t size;
    55     int32_t capacity;
    56     UColCETags currentTag;
    57 };
    59 U_CAPI CntTable* U_EXPORT2 
    60 /*uprv_cnttab_open(CompactEIntArray *mapping, UErrorCode *status);*/
    61 uprv_cnttab_open(UNewTrie *mapping, UErrorCode *status);
    62 U_CAPI CntTable* U_EXPORT2 
    63 uprv_cnttab_clone(CntTable *table, UErrorCode *status);
    64 U_CAPI void U_EXPORT2 
    65 uprv_cnttab_close(CntTable *table);
    67 /* construct the table for output */
    68 U_CAPI int32_t U_EXPORT2 
    69 uprv_cnttab_constructTable(CntTable *table, uint32_t mainOffset, UErrorCode *status); 
    70 /* adds more contractions in table. If element is non existant, it creates on. Returns element handle */
    71 U_CAPI uint32_t U_EXPORT2 
    72 uprv_cnttab_addContraction(CntTable *table, uint32_t element, UChar codePoint, uint32_t value, UErrorCode *status);
    73 /* sets a part of contraction sequence in table. If element is non existant, it creates on. Returns element handle */
    74 U_CAPI uint32_t U_EXPORT2 
    75 uprv_cnttab_setContraction(CntTable *table, uint32_t element, uint32_t offset, UChar codePoint, uint32_t value, UErrorCode *status);
    76 /* inserts a part of contraction sequence in table. Sequences behind the offset are moved back. If element is non existant, it creates on. Returns element handle */
    77 U_CAPI uint32_t U_EXPORT2 
    78 uprv_cnttab_insertContraction(CntTable *table, uint32_t element, UChar codePoint, uint32_t value, UErrorCode *status);
    79 /* this is for adding non contractions */
    80 U_CAPI uint32_t U_EXPORT2 
    81 uprv_cnttab_changeLastCE(CntTable *table, uint32_t element, uint32_t value, UErrorCode *status);
    83 U_CAPI int32_t U_EXPORT2 
    84 uprv_cnttab_findCP(CntTable *table, uint32_t element, UChar codePoint, UErrorCode *status);
    86 U_CAPI uint32_t U_EXPORT2 
    87 uprv_cnttab_getCE(CntTable *table, uint32_t element, uint32_t position, UErrorCode *status);
    89 U_CAPI uint32_t U_EXPORT2 
    90 uprv_cnttab_changeContraction(CntTable *table, uint32_t element, UChar codePoint, uint32_t newCE, UErrorCode *status);
    92 U_CAPI uint32_t U_EXPORT2 
    93 uprv_cnttab_findCE(CntTable *table, uint32_t element, UChar codePoint, UErrorCode *status);
    95 U_CAPI UBool U_EXPORT2 
    96 uprv_cnttab_isTailored(CntTable *table, uint32_t element, UChar *ztString, UErrorCode *status);
    98 U_CDECL_END
   100 #endif /* #if !UCONFIG_NO_COLLATION */
   102 #endif

mercurial