• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
92