]> git.saurik.com Git - apple/icu.git/blob - icuSources/common/icuplugimp.h
ICU-57132.0.1.tar.gz
[apple/icu.git] / icuSources / common / icuplugimp.h
1 /*
2 ******************************************************************************
3 *
4 * Copyright (C) 2009-2015, International Business Machines
5 * Corporation and others. All Rights Reserved.
6 *
7 ******************************************************************************
8 *
9 * FILE NAME : icuplugimp.h
10 *
11 * Internal functions for the ICU plugin system
12 *
13 * Date Name Description
14 * 10/29/2009 sl New.
15 ******************************************************************************
16 */
17
18
19 #ifndef ICUPLUGIMP_H
20 #define ICUPLUGIMP_H
21
22 #include "unicode/icuplug.h"
23
24 #if UCONFIG_ENABLE_PLUGINS
25
26 /*========================*/
27 /** @{ Library Manipulation
28 */
29
30 /**
31 * Open a library, adding a reference count if needed.
32 * @param libName library name to load
33 * @param status error code
34 * @return the library pointer, or NULL
35 * @internal internal use only
36 */
37 U_INTERNAL void * U_EXPORT2
38 uplug_openLibrary(const char *libName, UErrorCode *status);
39
40 /**
41 * Close a library, if its reference count is 0
42 * @param lib the library to close
43 * @param status error code
44 * @internal internal use only
45 */
46 U_INTERNAL void U_EXPORT2
47 uplug_closeLibrary(void *lib, UErrorCode *status);
48
49 /**
50 * Get a library's name, or NULL if not found.
51 * @param lib the library's name
52 * @param status error code
53 * @return the library name, or NULL if not found.
54 * @internal internal use only
55 */
56 U_INTERNAL char * U_EXPORT2
57 uplug_findLibrary(void *lib, UErrorCode *status);
58
59 /** @} */
60
61 /*========================*/
62 /** {@ ICU Plugin internal interfaces
63 */
64
65 /**
66 * Initialize the plugins
67 * @param status error result
68 * @internal - Internal use only.
69 */
70 U_INTERNAL void U_EXPORT2
71 uplug_init(UErrorCode *status);
72
73 /**
74 * Get raw plug N
75 * @internal - Internal use only
76 */
77 U_INTERNAL UPlugData* U_EXPORT2
78 uplug_getPlugInternal(int32_t n);
79
80 /**
81 * Get the name of the plugin file.
82 * @internal - Internal use only.
83 */
84 U_INTERNAL const char* U_EXPORT2
85 uplug_getPluginFile(void);
86
87 /** @} */
88
89 #endif
90
91 #endif