Home | History | Annotate | Download | only in common
      1 /*
      2 ******************************************************************************
      3 *
      4 *   Copyright (C) 2009-2015, 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 #if UCONFIG_ENABLE_PLUGINS
     25 
     26 /*========================*/
     27 /** @{ Library Manipulation
     28  */
     29 
     30 /**
     31  * Open a library, adding a reference count if needed.
     32  * @param libName library name to load
     33  * @param status error code
     34  * @return the library pointer, or NULL
     35  * @internal internal use only
     36  */
     37 U_INTERNAL void * U_EXPORT2
     38 uplug_openLibrary(const char *libName, UErrorCode *status);
     39 
     40 /**
     41  * Close a library, if its reference count is 0
     42  * @param lib the library to close
     43  * @param status error code
     44  * @internal internal use only
     45  */
     46 U_INTERNAL void U_EXPORT2
     47 uplug_closeLibrary(void *lib, UErrorCode *status);
     48 
     49 /**
     50  * Get a library's name, or NULL if not found.
     51  * @param lib the library's name
     52  * @param status error code
     53  * @return the library name, or NULL if not found.
     54  * @internal internal use only
     55  */
     56 U_INTERNAL  char * U_EXPORT2
     57 uplug_findLibrary(void *lib, UErrorCode *status);
     58 
     59 /** @} */
     60 
     61 /*========================*/
     62 /** {@ ICU Plugin internal interfaces
     63  */
     64 
     65 /**
     66  * Initialize the plugins
     67  * @param status error result
     68  * @internal - Internal use only.
     69  */
     70 U_INTERNAL void U_EXPORT2
     71 uplug_init(UErrorCode *status);
     72 
     73 /**
     74  * Get raw plug N
     75  * @internal - Internal use only
     76  */
     77 U_INTERNAL UPlugData* U_EXPORT2
     78 uplug_getPlugInternal(int32_t n);
     79 
     80 /**
     81  * Get the name of the plugin file.
     82  * @internal - Internal use only.
     83  */
     84 U_INTERNAL const char* U_EXPORT2
     85 uplug_getPluginFile(void);
     86 
     87 /** @} */
     88 
     89 #endif
     90 
     91 #endif
     92