home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F277199_apr_dso.h < prev    next >
C/C++ Source or Header  |  2004-02-13  |  3KB  |  94 lines

  1. /* Copyright 2000-2004 The Apache Software Foundation
  2.  *
  3.  * Licensed under the Apache License, Version 2.0 (the "License");
  4.  * you may not use this file except in compliance with the License.
  5.  * You may obtain a copy of the License at
  6.  *
  7.  *     http://www.apache.org/licenses/LICENSE-2.0
  8.  *
  9.  * Unless required by applicable law or agreed to in writing, software
  10.  * distributed under the License is distributed on an "AS IS" BASIS,
  11.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12.  * See the License for the specific language governing permissions and
  13.  * limitations under the License.
  14.  */
  15.  
  16. #ifndef APR_DSO_DOT_H
  17. #define APR_DSO_DOT_H
  18.  
  19. /**
  20.  * @file apr_dso.h
  21.  * @brief APR Dynamic Object Handling Routines
  22.  */
  23.  
  24. #include "apr.h"
  25. #include "apr_pools.h"
  26. #include "apr_errno.h"
  27.  
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif
  31.  
  32. /**
  33.  * @defgroup apr_dso Dynamic Object Handling
  34.  * @ingroup APR 
  35.  * @{
  36.  */
  37.  
  38. #if APR_HAS_DSO || defined(DOXYGEN)
  39.  
  40. /**
  41.  * Structure for referencing dynamic objects
  42.  */
  43. typedef struct apr_dso_handle_t       apr_dso_handle_t;
  44.  
  45. /**
  46.  * Structure for referencing symbols from dynamic objects
  47.  */
  48. typedef void *                        apr_dso_handle_sym_t;
  49.  
  50. /**
  51.  * Load a DSO library.
  52.  * @param res_handle Location to store new handle for the DSO.
  53.  * @param path Path to the DSO library
  54.  * @param ctx Pool to use.
  55.  * @bug We aught to provide an alternative to RTLD_GLOBAL, which
  56.  * is the only supported method of loading DSOs today.
  57.  */
  58. APR_DECLARE(apr_status_t) apr_dso_load(apr_dso_handle_t **res_handle, 
  59.                                        const char *path, apr_pool_t *ctx);
  60.  
  61. /**
  62.  * Close a DSO library.
  63.  * @param handle handle to close.
  64.  */
  65. APR_DECLARE(apr_status_t) apr_dso_unload(apr_dso_handle_t *handle);
  66.  
  67. /**
  68.  * Load a symbol from a DSO handle.
  69.  * @param ressym Location to store the loaded symbol
  70.  * @param handle handle to load the symbol from.
  71.  * @param symname Name of the symbol to load.
  72.  */
  73. APR_DECLARE(apr_status_t) apr_dso_sym(apr_dso_handle_sym_t *ressym, 
  74.                                       apr_dso_handle_t *handle,
  75.                                       const char *symname);
  76.  
  77. /**
  78.  * Report more information when a DSO function fails.
  79.  * @param dso The dso handle that has been opened
  80.  * @param buf Location to store the dso error
  81.  * @param bufsize The size of the provided buffer
  82.  */
  83. APR_DECLARE(const char *) apr_dso_error(apr_dso_handle_t *dso, char *buf, apr_size_t bufsize);
  84.  
  85. #endif /* APR_HAS_DSO */
  86.  
  87. /** @} */
  88.  
  89. #ifdef __cplusplus
  90. }
  91. #endif
  92.  
  93. #endif
  94.