00001
00002
00003
00004
00005 #if !defined(_INCLUDED_SMD_MODULES_H_HEADER__)
00006 #define _INCLUDED_SMD_MODULES_H_HEADER__
00007
00018 typedef struct smd_module_system_t smd_module_system_t;
00019
00025 typedef sul_error_t *(*smd_module_create_fn_t)(smd_module_system_t *modsys,
00026 sul_cfg_block_t *cfg,
00027 apr_pool_t *pool);
00028
00033 typedef sul_error_t *(*smd_module_destroy_fn_t)(apr_pool_t *pool);
00034
00041 typedef struct smd_module_t
00042 {
00044 const char *name;
00046 smd_module_create_fn_t create_fn;
00048 smd_module_destroy_fn_t destroy_fn;
00050 apr_pool_t *pool;
00051 #if defined(APR_HAS_DSO)
00052
00053 apr_dso_handle_t *handle;
00054 #endif
00055 } smd_module_t;
00056
00071 sul_error_t *smd_modules_create(smd_module_system_t **self,
00072 sul_cfg_block_t *config, sos_fs_t *fs,
00073 apr_pool_t *pool);
00074
00075
00085 sul_error_t *smd_modules_load(smd_module_system_t *modsys, smd_module_t *module,
00086 apr_pool_t *pool);
00087
00095 sul_error_t *smd_modules_destroy(smd_module_system_t *modsys);
00096
00103 sul_cfg_block_t *smd_modules_config(smd_module_system_t *modsys);
00104
00113 sul_error_t *moddynamic_module_load(smd_module_system_t *modsys,
00114 const char *name, apr_pool_t *pool);
00115
00116 char *smd_modules_cfg_path(const char *key, apr_pool_t *pool);
00117
00120 #endif