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