ICU 49.1.1
49.1.1
|
00001 /* 00002 ****************************************************************************** 00003 * 00004 * Copyright (C) 2009-2011, International Business Machines 00005 * Corporation and others. All Rights Reserved. 00006 * 00007 ****************************************************************************** 00008 * 00009 * FILE NAME : icuplug.h 00010 * 00011 * Date Name Description 00012 * 10/29/2009 sl New. 00013 ****************************************************************************** 00014 */ 00015 00105 #ifndef ICUPLUG_H 00106 #define ICUPLUG_H 00107 00108 #include "unicode/utypes.h" 00109 00110 00111 /* === Basic types === */ 00112 00113 #ifndef U_HIDE_INTERNAL_API 00114 00121 struct UPlugData; 00122 typedef struct UPlugData UPlugData; 00123 00131 #define UPLUG_TOKEN 0x54762486 00132 00137 #define UPLUG_NAME_MAX 100 00138 00139 00146 typedef uint32_t UPlugTokenReturn; 00147 00152 typedef enum { 00153 UPLUG_REASON_QUERY = 0, 00154 UPLUG_REASON_LOAD = 1, 00155 UPLUG_REASON_UNLOAD = 2, 00156 UPLUG_REASON_COUNT 00157 } UPlugReason; 00158 00159 00167 typedef enum { 00168 UPLUG_LEVEL_INVALID = 0, 00169 UPLUG_LEVEL_UNKNOWN = 1, 00170 UPLUG_LEVEL_LOW = 2, 00171 UPLUG_LEVEL_HIGH = 3, 00172 UPLUG_LEVEL_COUNT 00173 } UPlugLevel; 00174 00182 typedef UPlugTokenReturn (U_EXPORT2 UPlugEntrypoint) ( 00183 UPlugData *plug, 00184 UPlugReason reason, 00185 UErrorCode *status); 00186 00187 /* === Needed for Implementing === */ 00188 00197 U_CAPI void U_EXPORT2 00198 uplug_setPlugNoUnload(UPlugData *plug, UBool dontUnload); 00199 00206 U_CAPI void U_EXPORT2 00207 uplug_setPlugLevel(UPlugData *plug, UPlugLevel level); 00208 00215 U_CAPI UPlugLevel U_EXPORT2 00216 uplug_getPlugLevel(UPlugData *plug); 00217 00225 U_CAPI UPlugLevel U_EXPORT2 00226 uplug_getCurrentLevel(void); 00227 00228 00234 U_CAPI UErrorCode U_EXPORT2 00235 uplug_getPlugLoadStatus(UPlugData *plug); 00236 00243 U_CAPI void U_EXPORT2 00244 uplug_setPlugName(UPlugData *plug, const char *name); 00245 00252 U_CAPI const char * U_EXPORT2 00253 uplug_getPlugName(UPlugData *plug); 00254 00261 U_CAPI const char * U_EXPORT2 00262 uplug_getSymbolName(UPlugData *plug); 00263 00271 U_CAPI const char * U_EXPORT2 00272 uplug_getLibraryName(UPlugData *plug, UErrorCode *status); 00273 00281 U_CAPI void * U_EXPORT2 00282 uplug_getLibrary(UPlugData *plug); 00283 00290 U_CAPI void * U_EXPORT2 00291 uplug_getContext(UPlugData *plug); 00292 00299 U_CAPI void U_EXPORT2 00300 uplug_setContext(UPlugData *plug, void *context); 00301 00302 00310 U_CAPI const char * U_EXPORT2 00311 uplug_getConfiguration(UPlugData *plug); 00312 00328 U_CAPI UPlugData* U_EXPORT2 00329 uplug_nextPlug(UPlugData *prior); 00330 00343 U_CAPI UPlugData* U_EXPORT2 00344 uplug_loadPlugFromEntrypoint(UPlugEntrypoint *entrypoint, const char *config, UErrorCode *status); 00345 00346 00357 U_CAPI UPlugData* U_EXPORT2 00358 uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status); 00359 00367 U_CAPI void U_EXPORT2 00368 uplug_removePlug(UPlugData *plug, UErrorCode *status); 00369 #endif /* U_HIDE_INTERNAL_API */ 00370 00371 #endif