00001 #ifndef OA_MODULE_H 00002 #define OA_MODULE_H 00003 00015 /* Temporarily use global pools */ 00016 #include <openathena.h> 00017 #include <apr_dso.h> 00018 00022 #define OA_MOD_VERSION "SVN" 00023 00027 struct oa_mod_info { 00028 char *id; 00029 char *name; 00030 char *version; 00031 char *author; 00032 char *description; 00033 char *oa_version; 00034 apr_status_t (*load)(); 00035 void (*unload)(); 00036 }; 00037 00045 #define OA_MOD_REGISTER(module, info) \ 00046 struct oa_mod_info *oa_mod_init_##module() { \ 00047 return &(info); \ 00048 } 00049 00053 typedef struct oa_mod oa_mod; 00054 00058 void oa_mod_init(); 00059 00066 apr_status_t oa_mod_load(const char *mod_id, const char *filename); 00067 00073 void oa_mod_unload(const char *mod_id, oa_mod *module); 00074 00078 void oa_mod_unload_all(); 00079 00082 #endif // OA_MODULE_H 00083