icuplugimp.h 2.1 KB

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