Home | History | Annotate | Download | only in common
      1 /*
      2 ******************************************************************************
      3 *
      4 *   Copyright (C) 2009-2010, International Business Machines
      5 *   Corporation and others.  All Rights Reserved.
      6 *
      7 ******************************************************************************
      8 *
      9 *  FILE NAME : icuplugimp.h
     10 *
     11 *  Internal functions for the ICU plugin system
     12 *
     13 *   Date         Name        Description
     14 *   10/29/2009   sl          New.
     15 ******************************************************************************
     16 */
     17 
     18 
     19 #ifndef ICUPLUGIMP_H
     20 #define ICUPLUGIMP_H
     21 
     22 #include "unicode/icuplug.h"
     23 
     24 /*========================*/
     25 /** @{ Library Manipulation
     26  */
     27 
     28 /**
     29  * Open a library, adding a reference count if needed.
     30  * @param libName library name to load
     31  * @param status error code
     32  * @return the library pointer, or NULL
     33  * @internal internal use only
     34  */
     35 U_INTERNAL void * U_EXPORT2
     36 uplug_openLibrary(const char *libName, UErrorCode *status);
     37 
     38 /**
     39  * Close a library, if its reference count is 0
     40  * @param lib the library to close
     41  * @param status error code
     42  * @internal internal use only
     43  */
     44 U_INTERNAL void U_EXPORT2
     45 uplug_closeLibrary(void *lib, UErrorCode *status);
     46 
     47 /**
     48  * Get a library's name, or NULL if not found.
     49  * @param lib the library's name
     50  * @param status error code
     51  * @return the library name, or NULL if not found.
     52  * @internal internal use only
     53  */
     54 U_INTERNAL  char * U_EXPORT2
     55 uplug_findLibrary(void *lib, UErrorCode *status);
     56 
     57 /** @} */
     58 
     59 /*========================*/
     60 /** {@ ICU Plugin internal interfaces
     61  */
     62 
     63 /**
     64  * Initialize the plugins
     65  * @param status error result
     66  * @internal - Internal use only.
     67  */
     68 U_INTERNAL void U_EXPORT2
     69 uplug_init(UErrorCode *status);
     70 
     71 /**
     72  * Get raw plug N
     73  * @internal - Internal use only
     74  */
     75 U_INTERNAL UPlugData* U_EXPORT2
     76 uplug_getPlugInternal(int32_t n);
     77 
     78 /**
     79  * Get the name of the plugin file.
     80  * @internal - Internal use only.
     81  */
     82 U_INTERNAL const char* U_EXPORT2
     83 uplug_getPluginFile(void);
     84 
     85 /** @} */
     86 
     87 #endif
     88