Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00105 #ifndef ICUPLUG_H
00106 #define ICUPLUG_H
00107
00108 #include "unicode/utypes.h"
00109
00110
00111
00112
00120 struct UPlugData;
00121 typedef struct UPlugData UPlugData;
00122
00130 #define UPLUG_TOKEN 0x54762486
00131
00136 #define UPLUG_NAME_MAX 100
00137
00138
00145 typedef uint32_t UPlugTokenReturn;
00146
00151 typedef enum {
00152 UPLUG_REASON_QUERY = 0,
00153 UPLUG_REASON_LOAD = 1,
00154 UPLUG_REASON_UNLOAD = 2,
00155 UPLUG_REASON_COUNT
00156 } UPlugReason;
00157
00158
00166 typedef enum {
00167 UPLUG_LEVEL_INVALID = 0,
00168 UPLUG_LEVEL_UNKNOWN = 1,
00169 UPLUG_LEVEL_LOW = 2,
00170 UPLUG_LEVEL_HIGH = 3,
00171 UPLUG_LEVEL_COUNT
00172 } UPlugLevel;
00173
00181 typedef UPlugTokenReturn (U_EXPORT2 UPlugEntrypoint) (
00182 UPlugData *plug,
00183 UPlugReason reason,
00184 UErrorCode *status);
00185
00186
00187
00196 U_CAPI void U_EXPORT2
00197 uplug_setPlugNoUnload(UPlugData *plug, UBool dontUnload);
00198
00205 U_CAPI void U_EXPORT2
00206 uplug_setPlugLevel(UPlugData *plug, UPlugLevel level);
00207
00214 U_CAPI UPlugLevel U_EXPORT2
00215 uplug_getPlugLevel(UPlugData *plug);
00216
00224 U_CAPI UPlugLevel U_EXPORT2
00225 uplug_getCurrentLevel(void);
00226
00227
00233 U_CAPI UErrorCode U_EXPORT2
00234 uplug_getPlugLoadStatus(UPlugData *plug);
00235
00242 U_CAPI void U_EXPORT2
00243 uplug_setPlugName(UPlugData *plug, const char *name);
00244
00251 U_CAPI const char * U_EXPORT2
00252 uplug_getPlugName(UPlugData *plug);
00253
00260 U_CAPI const char * U_EXPORT2
00261 uplug_getSymbolName(UPlugData *plug);
00262
00270 U_CAPI const char * U_EXPORT2
00271 uplug_getLibraryName(UPlugData *plug, UErrorCode *status);
00272
00280 U_CAPI void * U_EXPORT2
00281 uplug_getLibrary(UPlugData *plug);
00282
00289 U_CAPI void * U_EXPORT2
00290 uplug_getContext(UPlugData *plug);
00291
00298 U_CAPI void U_EXPORT2
00299 uplug_setContext(UPlugData *plug, void *context);
00300
00301
00309 U_CAPI const char * U_EXPORT2
00310 uplug_getConfiguration(UPlugData *plug);
00311
00327 U_CAPI UPlugData* U_EXPORT2
00328 uplug_nextPlug(UPlugData *prior);
00329
00342 U_CAPI UPlugData* U_EXPORT2
00343 uplug_loadPlugFromEntrypoint(UPlugEntrypoint *entrypoint, const char *config, UErrorCode *status);
00344
00345
00356 U_CAPI UPlugData* U_EXPORT2
00357 uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status);
00358
00366 U_CAPI void U_EXPORT2
00367 uplug_removePlug(UPlugData *plug, UErrorCode *status);
00368
00369
00370 #endif