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