ICU 4.8.1.1  4.8.1.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
icuplug.h
Go to the documentation of this file.
1 /*
2 ******************************************************************************
3 *
4 * Copyright (C) 2009-2010, International Business Machines
5 * Corporation and others. All Rights Reserved.
6 *
7 ******************************************************************************
8 *
9 * FILE NAME : icuplug.h
10 *
11 * Date Name Description
12 * 10/29/2009 sl New.
13 ******************************************************************************
14 */
15 
105 #ifndef ICUPLUG_H
106 #define ICUPLUG_H
107 
108 #include "unicode/utypes.h"
109 
110 
111 /* === Basic types === */
112 
120 struct UPlugData;
121 typedef struct UPlugData UPlugData;
122 
130 #define UPLUG_TOKEN 0x54762486
131 
136 #define UPLUG_NAME_MAX 100
137 
138 
145 typedef uint32_t UPlugTokenReturn;
146 
151 typedef enum {
156 } UPlugReason;
157 
158 
166 typedef enum {
172 } UPlugLevel;
173 
182  UPlugData *plug,
183  UPlugReason reason,
184  UErrorCode *status);
185 
186 /* === Needed for Implementing === */
187 
196 U_CAPI void U_EXPORT2
197 uplug_setPlugNoUnload(UPlugData *plug, UBool dontUnload);
198 
205 U_CAPI void U_EXPORT2
206 uplug_setPlugLevel(UPlugData *plug, UPlugLevel level);
207 
215 uplug_getPlugLevel(UPlugData *plug);
216 
226 
227 
234 uplug_getPlugLoadStatus(UPlugData *plug);
235 
242 U_CAPI void U_EXPORT2
243 uplug_setPlugName(UPlugData *plug, const char *name);
244 
251 U_CAPI const char * U_EXPORT2
252 uplug_getPlugName(UPlugData *plug);
253 
260 U_CAPI const char * U_EXPORT2
261 uplug_getSymbolName(UPlugData *plug);
262 
270 U_CAPI const char * U_EXPORT2
271 uplug_getLibraryName(UPlugData *plug, UErrorCode *status);
272 
280 U_CAPI void * U_EXPORT2
281 uplug_getLibrary(UPlugData *plug);
282 
289 U_CAPI void * U_EXPORT2
290 uplug_getContext(UPlugData *plug);
291 
298 U_CAPI void U_EXPORT2
299 uplug_setContext(UPlugData *plug, void *context);
300 
301 
309 U_CAPI const char * U_EXPORT2
310 uplug_getConfiguration(UPlugData *plug);
311 
327 U_CAPI UPlugData* U_EXPORT2
328 uplug_nextPlug(UPlugData *prior);
329 
342 U_CAPI UPlugData* U_EXPORT2
343 uplug_loadPlugFromEntrypoint(UPlugEntrypoint *entrypoint, const char *config, UErrorCode *status);
344 
345 
356 U_CAPI UPlugData* U_EXPORT2
357 uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status);
358 
366 U_CAPI void U_EXPORT2
367 uplug_removePlug(UPlugData *plug, UErrorCode *status);
368 
369 
370 #endif
The plugin is waiting to be installed.
Definition: icuplug.h:168
U_CAPI UErrorCode uplug_getPlugLoadStatus(UPlugData *plug)
Get plug load status.
U_CAPI UPlugData * uplug_nextPlug(UPlugData *prior)
Return all currently installed plugins, from newest to oldest Usage Example:
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:135
U_CAPI UPlugLevel uplug_getCurrentLevel(void)
Get the lowest level of plug which can currently load.
The plugin is invalid, hasn't called uplug_setLevel, or can't load.
Definition: icuplug.h:167
UPlugReason
Reason code for the entrypoint's call.
Definition: icuplug.h:151
U_CAPI void * uplug_getLibrary(UPlugData *plug)
Return the library used for this plugin, if known.
uint32_t UPlugTokenReturn
Return value from a plugin entrypoint.
Definition: icuplug.h:145
U_CAPI void uplug_removePlug(UPlugData *plug, UErrorCode *status)
Remove a plugin.
The plugin can run at any time.
Definition: icuplug.h:170
The plugin must be called before u_init completes.
Definition: icuplug.h:169
U_CAPI void * uplug_getContext(UPlugData *plug)
Return the plugin-specific context data.
U_CAPI const char * uplug_getConfiguration(UPlugData *plug)
Get the configuration string, if available.
U_CAPI const char * uplug_getLibraryName(UPlugData *plug, UErrorCode *status)
Return the library name for this plugin, if known.
UPlugLevel
Level of plugin loading INITIAL: UNKNOWN QUERY: INVALID -> { LOW | HIGH } ERR -> INVALID.
Definition: icuplug.h:166
U_CAPI const char * uplug_getSymbolName(UPlugData *plug)
Return the symbol name for this plugin, if known.
#define U_EXPORT2
Definition: platform.h:314
The plugin is being unloaded.
Definition: icuplug.h:154
U_CAPI UPlugLevel uplug_getPlugLevel(UPlugData *plug)
Get the level of this plugin.
U_CAPI void uplug_setPlugLevel(UPlugData *plug, UPlugLevel level)
Set the level of this plugin.
U_CAPI UPlugData * uplug_loadPlugFromEntrypoint(UPlugEntrypoint *entrypoint, const char *config, UErrorCode *status)
Inject a plugin as if it were loaded from a library.
count of known reasons
Definition: icuplug.h:171
U_CAPI void uplug_setPlugNoUnload(UPlugData *plug, UBool dontUnload)
Request that this plugin not be unloaded at cleanup time.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:639
The plugin is being loaded.
Definition: icuplug.h:153
UPlugTokenReturn( UPlugEntrypoint)(UPlugData *plug, UPlugReason reason, UErrorCode *status)
Entrypoint for an ICU plugin.
Definition: icuplug.h:181
The plugin is being queried for info.
Definition: icuplug.h:152
Basic definitions for ICU, for both C and C++ APIs.
count of known reasons
Definition: icuplug.h:155
U_CAPI const char * uplug_getPlugName(UPlugData *plug)
Get the human-readable name of this plugin.
U_CAPI void uplug_setContext(UPlugData *plug, void *context)
Set the plugin-specific context data.
U_CAPI UPlugData * uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status)
Inject a plugin from a library, as if the information came from a config file.
U_CAPI void uplug_setPlugName(UPlugData *plug, const char *name)
Set the human-readable name of this plugin.
int8_t UBool
The ICU boolean type.
Definition: umachine.h:228