Home | History | Annotate | Download | only in common
      1 /*
      2 ******************************************************************************
      3 *                                                                            *
      4 * Copyright (C) 2001-2012, International Business Machines                   *
      5 *                Corporation and others. All Rights Reserved.                *
      6 *                                                                            *
      7 ******************************************************************************
      8 *   file name:  uinit.c
      9 *   encoding:   US-ASCII
     10 *   tab size:   8 (not used)
     11 *   indentation:4
     12 *
     13 *   created on: 2001July05
     14 *   created by: George Rhoten
     15 */
     16 
     17 #include "unicode/utypes.h"
     18 #include "unicode/icuplug.h"
     19 #include "unicode/uclean.h"
     20 #include "cmemory.h"
     21 #include "icuplugimp.h"
     22 #include "ucln.h"
     23 #include "ucnv_io.h"
     24 #include "utracimp.h"
     25 
     26 static void U_CALLCONV
     27 initData(UErrorCode *status)
     28 {
     29     /*
     30      * 2005-may-02
     31      *
     32      * ICU4C 3.4 (jitterbug 4497) hardcodes the data for Unicode character
     33      * properties for APIs that want to be fast.
     34      * Therefore, we need not load them here nor check for errors.
     35      * Instead, we load the converter alias table to see if any ICU data
     36      * is available.
     37      * Users should really open the service objects they need and check
     38      * for errors there, to make sure that the actual items they need are
     39      * available.
     40      */
     41 #if !UCONFIG_NO_CONVERSION
     42     ucnv_io_countKnownConverters(status);
     43 #endif
     44 }
     45 
     46 /*
     47  * ICU Initialization Function. Need not be called.
     48  */
     49 U_CAPI void U_EXPORT2
     50 u_init(UErrorCode *status) {
     51     UTRACE_ENTRY_OC(UTRACE_U_INIT);
     52 
     53     /* initialize plugins */
     54     uplug_init(status);
     55     ucln_mutexedInit(initData, status);
     56 
     57     UTRACE_EXIT_STATUS(*status);
     58 }
     59