1 /*
2 ******************************************************************************
3 *
4 *   Copyright (C) 2009-2010, 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 /*========================*/
25 /** @{ Library Manipulation
26  */
27 
28 /**
29  * Open a library, adding a reference count if needed.
30  * @param libName library name to load
31  * @param status error code
32  * @return the library pointer, or NULL
33  * @internal internal use only
34  */
35 U_INTERNAL void * U_EXPORT2
36 uplug_openLibrary(const char *libName, UErrorCode *status);
37 
38 /**
39  * Close a library, if its reference count is 0
40  * @param lib the library to close
41  * @param status error code
42  * @internal internal use only
43  */
44 U_INTERNAL void U_EXPORT2
45 uplug_closeLibrary(void *lib, UErrorCode *status);
46 
47 /**
48  * Get a library's name, or NULL if not found.
49  * @param lib the library's name
50  * @param status error code
51  * @return the library name, or NULL if not found.
52  * @internal internal use only
53  */
54 U_INTERNAL  char * U_EXPORT2
55 uplug_findLibrary(void *lib, UErrorCode *status);
56 
57 /** @} */
58 
59 /*========================*/
60 /** {@ ICU Plugin internal interfaces
61  */
62 
63 /**
64  * Initialize the plugins
65  * @param status error result
66  * @internal - Internal use only.
67  */
68 U_INTERNAL void U_EXPORT2
69 uplug_init(UErrorCode *status);
70 
71 /**
72  * Get raw plug N
73  * @internal - Internal use only
74  */
75 U_INTERNAL UPlugData* U_EXPORT2
76 uplug_getPlugInternal(int32_t n);
77 
78 /**
79  * Get the name of the plugin file.
80  * @internal - Internal use only.
81  */
82 U_INTERNAL const char* U_EXPORT2
83 uplug_getPluginFile(void);
84 
85 /** @} */
86 
87 #endif
88