ICU 56.1  56.1
 All Data Structures Namespaces 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-2015, 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 #if UCONFIG_ENABLE_PLUGINS
112 
113 
114 
115 /* === Basic types === */
116 
117 #ifndef U_HIDE_INTERNAL_API
118 
125 struct UPlugData;
126 typedef struct UPlugData UPlugData;
127 
135 #define UPLUG_TOKEN 0x54762486
136 
141 #define UPLUG_NAME_MAX 100
142 
143 
150 typedef uint32_t UPlugTokenReturn;
151 
156 typedef enum {
161 } UPlugReason;
162 
163 
171 typedef enum {
177 } UPlugLevel;
178 
186 typedef UPlugTokenReturn (U_EXPORT2 UPlugEntrypoint) (
187  UPlugData *plug,
188  UPlugReason reason,
189  UErrorCode *status);
190 
191 /* === Needed for Implementing === */
192 
201 U_INTERNAL void U_EXPORT2
202 uplug_setPlugNoUnload(UPlugData *plug, UBool dontUnload);
203 
210 U_INTERNAL void U_EXPORT2
211 uplug_setPlugLevel(UPlugData *plug, UPlugLevel level);
212 
219 U_INTERNAL UPlugLevel U_EXPORT2
220 uplug_getPlugLevel(UPlugData *plug);
221 
229 U_INTERNAL UPlugLevel U_EXPORT2
231 
232 
238 U_INTERNAL UErrorCode U_EXPORT2
239 uplug_getPlugLoadStatus(UPlugData *plug);
240 
247 U_INTERNAL void U_EXPORT2
248 uplug_setPlugName(UPlugData *plug, const char *name);
249 
256 U_INTERNAL const char * U_EXPORT2
257 uplug_getPlugName(UPlugData *plug);
258 
265 U_INTERNAL const char * U_EXPORT2
266 uplug_getSymbolName(UPlugData *plug);
267 
275 U_INTERNAL const char * U_EXPORT2
276 uplug_getLibraryName(UPlugData *plug, UErrorCode *status);
277 
285 U_INTERNAL void * U_EXPORT2
286 uplug_getLibrary(UPlugData *plug);
287 
294 U_INTERNAL void * U_EXPORT2
295 uplug_getContext(UPlugData *plug);
296 
303 U_INTERNAL void U_EXPORT2
304 uplug_setContext(UPlugData *plug, void *context);
305 
306 
314 U_INTERNAL const char * U_EXPORT2
315 uplug_getConfiguration(UPlugData *plug);
316 
332 U_INTERNAL UPlugData* U_EXPORT2
333 uplug_nextPlug(UPlugData *prior);
334 
347 U_INTERNAL UPlugData* U_EXPORT2
348 uplug_loadPlugFromEntrypoint(UPlugEntrypoint *entrypoint, const char *config, UErrorCode *status);
349 
350 
361 U_INTERNAL UPlugData* U_EXPORT2
362 uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status);
363 
371 U_INTERNAL void U_EXPORT2
372 uplug_removePlug(UPlugData *plug, UErrorCode *status);
373 #endif /* U_HIDE_INTERNAL_API */
374 
375 #endif /* UCONFIG_ENABLE_PLUGINS */
376 
377 #endif /* _ICUPLUG */
378