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
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
00188
00197 U_INTERNAL void U_EXPORT2
00198 uplug_setPlugNoUnload(UPlugData *plug, UBool dontUnload);
00199
00206 U_INTERNAL void U_EXPORT2
00207 uplug_setPlugLevel(UPlugData *plug, UPlugLevel level);
00208
00215 U_INTERNAL UPlugLevel U_EXPORT2
00216 uplug_getPlugLevel(UPlugData *plug);
00217
00225 U_INTERNAL UPlugLevel U_EXPORT2
00226 uplug_getCurrentLevel(void);
00227
00228
00234 U_INTERNAL UErrorCode U_EXPORT2
00235 uplug_getPlugLoadStatus(UPlugData *plug);
00236
00243 U_INTERNAL void U_EXPORT2
00244 uplug_setPlugName(UPlugData *plug, const char *name);
00245
00252 U_INTERNAL const char * U_EXPORT2
00253 uplug_getPlugName(UPlugData *plug);
00254
00261 U_INTERNAL const char * U_EXPORT2
00262 uplug_getSymbolName(UPlugData *plug);
00263
00271 U_INTERNAL const char * U_EXPORT2
00272 uplug_getLibraryName(UPlugData *plug, UErrorCode *status);
00273
00281 U_INTERNAL void * U_EXPORT2
00282 uplug_getLibrary(UPlugData *plug);
00283
00290 U_INTERNAL void * U_EXPORT2
00291 uplug_getContext(UPlugData *plug);
00292
00299 U_INTERNAL void U_EXPORT2
00300 uplug_setContext(UPlugData *plug, void *context);
00301
00302
00310 U_INTERNAL const char * U_EXPORT2
00311 uplug_getConfiguration(UPlugData *plug);
00312
00328 U_INTERNAL UPlugData* U_EXPORT2
00329 uplug_nextPlug(UPlugData *prior);
00330
00343 U_INTERNAL UPlugData* U_EXPORT2
00344 uplug_loadPlugFromEntrypoint(UPlugEntrypoint *entrypoint, const char *config, UErrorCode *status);
00345
00346
00357 U_INTERNAL UPlugData* U_EXPORT2
00358 uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status);
00359
00367 U_INTERNAL void U_EXPORT2
00368 uplug_removePlug(UPlugData *plug, UErrorCode *status);
00369 #endif
00370
00371 #endif