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_CAPI 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_CAPI 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_CAPI 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_CAPI void U_EXPORT2 73 uplug_init(UErrorCode *status); 74 75 /** 76 * Get raw plug N 77 * @internal - Internal use only 78 */ 79 U_CAPI 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_CAPI const char* U_EXPORT2 87 uplug_getPluginFile(void); 88 89 /** @} */ 90 91 #endif 92 93 #endif 94