|
ICU 73.2
73.2
|
00001 // © 2016 and later: Unicode, Inc. and others. 00002 // License & terms of use: http://www.unicode.org/copyright.html 00003 /* 00004 ****************************************************************************** 00005 * 00006 * Copyright (C) 2009-2015, International Business Machines 00007 * Corporation and others. All Rights Reserved. 00008 * 00009 ****************************************************************************** 00010 * 00011 * FILE NAME : icuplug.h 00012 * 00013 * Date Name Description 00014 * 10/29/2009 sl New. 00015 ****************************************************************************** 00016 */ 00017 00107 #ifndef ICUPLUG_H 00108 #define ICUPLUG_H 00109 00110 #include "unicode/utypes.h" 00111 00112 00113 #if UCONFIG_ENABLE_PLUGINS || defined(U_IN_DOXYGEN) 00114 00115 00116 00117 /* === Basic types === */ 00118 00119 #ifndef U_HIDE_INTERNAL_API 00120 struct UPlugData; 00127 typedef struct UPlugData UPlugData; 00128 00136 #define UPLUG_TOKEN 0x54762486 00137 00142 #define UPLUG_NAME_MAX 100 00143 00144 00151 typedef uint32_t UPlugTokenReturn; 00152 00157 typedef enum { 00158 UPLUG_REASON_QUERY = 0, 00159 UPLUG_REASON_LOAD = 1, 00160 UPLUG_REASON_UNLOAD = 2, 00165 UPLUG_REASON_COUNT 00166 } UPlugReason; 00167 00168 00176 typedef enum { 00177 UPLUG_LEVEL_INVALID = 0, 00178 UPLUG_LEVEL_UNKNOWN = 1, 00179 UPLUG_LEVEL_LOW = 2, 00180 UPLUG_LEVEL_HIGH = 3, 00185 UPLUG_LEVEL_COUNT 00186 } UPlugLevel; 00187 00199 typedef UPlugTokenReturn (U_EXPORT2 UPlugEntrypoint) ( 00200 UPlugData *plug, 00201 UPlugReason reason, 00202 UErrorCode *status); 00203 00204 /* === Needed for Implementing === */ 00205 00214 U_CAPI void U_EXPORT2 00215 uplug_setPlugNoUnload(UPlugData *plug, UBool dontUnload); 00216 00223 U_CAPI void U_EXPORT2 00224 uplug_setPlugLevel(UPlugData *plug, UPlugLevel level); 00225 00232 U_CAPI UPlugLevel U_EXPORT2 00233 uplug_getPlugLevel(UPlugData *plug); 00234 00242 U_CAPI UPlugLevel U_EXPORT2 00243 uplug_getCurrentLevel(void); 00244 00245 00251 U_CAPI UErrorCode U_EXPORT2 00252 uplug_getPlugLoadStatus(UPlugData *plug); 00253 00260 U_CAPI void U_EXPORT2 00261 uplug_setPlugName(UPlugData *plug, const char *name); 00262 00269 U_CAPI const char * U_EXPORT2 00270 uplug_getPlugName(UPlugData *plug); 00271 00278 U_CAPI const char * U_EXPORT2 00279 uplug_getSymbolName(UPlugData *plug); 00280 00288 U_CAPI const char * U_EXPORT2 00289 uplug_getLibraryName(UPlugData *plug, UErrorCode *status); 00290 00298 U_CAPI void * U_EXPORT2 00299 uplug_getLibrary(UPlugData *plug); 00300 00307 U_CAPI void * U_EXPORT2 00308 uplug_getContext(UPlugData *plug); 00309 00316 U_CAPI void U_EXPORT2 00317 uplug_setContext(UPlugData *plug, void *context); 00318 00319 00327 U_CAPI const char * U_EXPORT2 00328 uplug_getConfiguration(UPlugData *plug); 00329 00345 U_CAPI UPlugData* U_EXPORT2 00346 uplug_nextPlug(UPlugData *prior); 00347 00360 U_CAPI UPlugData* U_EXPORT2 00361 uplug_loadPlugFromEntrypoint(UPlugEntrypoint *entrypoint, const char *config, UErrorCode *status); 00362 00363 00374 U_CAPI UPlugData* U_EXPORT2 00375 uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status); 00376 00384 U_CAPI void U_EXPORT2 00385 uplug_removePlug(UPlugData *plug, UErrorCode *status); 00386 #endif /* U_HIDE_INTERNAL_API */ 00387 00388 #endif /* UCONFIG_ENABLE_PLUGINS */ 00389 00390 #endif /* _ICUPLUG */ 00391
1.7.6.1