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