ICU 55.1  55.1
icuplug.h
Go to the documentation of this file.
1 /*
2 ******************************************************************************
3 *
4 * Copyright (C) 2009-2012, 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 
113 #ifndef U_HIDE_INTERNAL_API
114 
121 struct UPlugData;
122 typedef struct UPlugData UPlugData;
123 
131 #define UPLUG_TOKEN 0x54762486
132 
137 #define UPLUG_NAME_MAX 100
138 
139 
146 typedef uint32_t UPlugTokenReturn;
147 
152 typedef enum {
158 
159 
167 typedef enum {
174 
182 typedef UPlugTokenReturn (U_EXPORT2 UPlugEntrypoint) (
183  UPlugData *plug,
184  UPlugReason reason,
185  UErrorCode *status);
186 
187 /* === Needed for Implementing === */
188 
197 U_INTERNAL void U_EXPORT2
198 uplug_setPlugNoUnload(UPlugData *plug, UBool dontUnload);
199 
206 U_INTERNAL void U_EXPORT2
207 uplug_setPlugLevel(UPlugData *plug, UPlugLevel level);
208 
215 U_INTERNAL UPlugLevel U_EXPORT2
216 uplug_getPlugLevel(UPlugData *plug);
217 
225 U_INTERNAL UPlugLevel U_EXPORT2
227 
228 
234 U_INTERNAL UErrorCode U_EXPORT2
235 uplug_getPlugLoadStatus(UPlugData *plug);
236 
243 U_INTERNAL void U_EXPORT2
244 uplug_setPlugName(UPlugData *plug, const char *name);
245 
252 U_INTERNAL const char * U_EXPORT2
253 uplug_getPlugName(UPlugData *plug);
254 
261 U_INTERNAL const char * U_EXPORT2
262 uplug_getSymbolName(UPlugData *plug);
263 
271 U_INTERNAL const char * U_EXPORT2
272 uplug_getLibraryName(UPlugData *plug, UErrorCode *status);
273 
281 U_INTERNAL void * U_EXPORT2
282 uplug_getLibrary(UPlugData *plug);
283 
290 U_INTERNAL void * U_EXPORT2
291 uplug_getContext(UPlugData *plug);
292 
299 U_INTERNAL void U_EXPORT2
300 uplug_setContext(UPlugData *plug, void *context);
301 
302 
310 U_INTERNAL const char * U_EXPORT2
311 uplug_getConfiguration(UPlugData *plug);
312 
328 U_INTERNAL UPlugData* U_EXPORT2
329 uplug_nextPlug(UPlugData *prior);
330 
343 U_INTERNAL UPlugData* U_EXPORT2
344 uplug_loadPlugFromEntrypoint(UPlugEntrypoint *entrypoint, const char *config, UErrorCode *status);
345 
346 
357 U_INTERNAL UPlugData* U_EXPORT2
358 uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status);
359 
367 U_INTERNAL void U_EXPORT2
368 uplug_removePlug(UPlugData *plug, UErrorCode *status);
369 #endif /* U_HIDE_INTERNAL_API */
370 
371 #endif
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
uplug_getLibrary
void * uplug_getLibrary(UPlugData *plug)
Return the library used for this plugin, if known.
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
uplug_getPlugLoadStatus
UErrorCode uplug_getPlugLoadStatus(UPlugData *plug)
Get plug load status.
uplug_nextPlug
UPlugData * uplug_nextPlug(UPlugData *prior)
Return all currently installed plugins, from newest to oldest Usage Example:
UPLUG_LEVEL_HIGH
@ UPLUG_LEVEL_HIGH
The plugin can run at any time.
Definition: icuplug.h:171
UPLUG_LEVEL_INVALID
@ UPLUG_LEVEL_INVALID
The plugin is invalid, hasn't called uplug_setLevel, or can't load.
Definition: icuplug.h:168
uplug_getSymbolName
const char * uplug_getSymbolName(UPlugData *plug)
Return the symbol name for this plugin, if known.
uplug_getConfiguration
const char * uplug_getConfiguration(UPlugData *plug)
Get the configuration string, if available.
uplug_setPlugName
void uplug_setPlugName(UPlugData *plug, const char *name)
Set the human-readable name of this plugin.
UPlugTokenReturn
uint32_t UPlugTokenReturn
Return value from a plugin entrypoint.
Definition: icuplug.h:146
UPLUG_LEVEL_LOW
@ UPLUG_LEVEL_LOW
The plugin must be called before u_init completes.
Definition: icuplug.h:170
uplug_loadPlugFromEntrypoint
UPlugData * uplug_loadPlugFromEntrypoint(UPlugEntrypoint *entrypoint, const char *config, UErrorCode *status)
Inject a plugin as if it were loaded from a library.
UErrorCode
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition: utypes.h:476
UPlugReason
UPlugReason
Reason code for the entrypoint's call.
Definition: icuplug.h:152
U_INTERNAL
#define U_INTERNAL
This is used to declare a function as an internal ICU C API
Definition: umachine.h:117
uplug_setPlugNoUnload
void uplug_setPlugNoUnload(UPlugData *plug, UBool dontUnload)
Request that this plugin not be unloaded at cleanup time.
uplug_loadPlugFromLibrary
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.
UPLUG_LEVEL_COUNT
@ UPLUG_LEVEL_COUNT
count of known reasons
Definition: icuplug.h:172
uplug_getPlugName
const char * uplug_getPlugName(UPlugData *plug)
Get the human-readable name of this plugin.
uplug_getContext
void * uplug_getContext(UPlugData *plug)
Return the plugin-specific context data.
uplug_setPlugLevel
void uplug_setPlugLevel(UPlugData *plug, UPlugLevel level)
Set the level of this plugin.
UPLUG_REASON_UNLOAD
@ UPLUG_REASON_UNLOAD
The plugin is being unloaded.
Definition: icuplug.h:155
UPlugLevel
UPlugLevel
Level of plugin loading INITIAL: UNKNOWN QUERY: INVALID -> { LOW | HIGH } ERR -> INVALID.
Definition: icuplug.h:167
uplug_getCurrentLevel
UPlugLevel uplug_getCurrentLevel(void)
Get the lowest level of plug which can currently load.
UPLUG_LEVEL_UNKNOWN
@ UPLUG_LEVEL_UNKNOWN
The plugin is waiting to be installed.
Definition: icuplug.h:169
uplug_getPlugLevel
UPlugLevel uplug_getPlugLevel(UPlugData *plug)
Get the level of this plugin.
UPlugEntrypoint
UPlugTokenReturn() UPlugEntrypoint(UPlugData *plug, UPlugReason reason, UErrorCode *status)
Entrypoint for an ICU plugin.
Definition: icuplug.h:182
uplug_getLibraryName
const char * uplug_getLibraryName(UPlugData *plug, UErrorCode *status)
Return the library name for this plugin, if known.
uplug_removePlug
void uplug_removePlug(UPlugData *plug, UErrorCode *status)
Remove a plugin.
UPLUG_REASON_COUNT
@ UPLUG_REASON_COUNT
count of known reasons
Definition: icuplug.h:156
UPLUG_REASON_LOAD
@ UPLUG_REASON_LOAD
The plugin is being loaded.
Definition: icuplug.h:154
uplug_setContext
void uplug_setContext(UPlugData *plug, void *context)
Set the plugin-specific context data.
UPLUG_REASON_QUERY
@ UPLUG_REASON_QUERY
The plugin is being queried for info.
Definition: icuplug.h:153