diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2015-03-27 02:10:12 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2015-03-27 02:10:12 +0300 |
commit | f87e3320c499edccd545ff3bfc244ef5c7216bb5 (patch) | |
tree | 5917670515947311cdf81352977bbdae60bcd0f1 /server/src/main.cpp | |
parent | c46da5d47a706cee43ff62bc6649257fba508743 (diff) |
module api fixes (thx 0xd34df00d)
working module prototype
Diffstat (limited to 'server/src/main.cpp')
-rw-r--r-- | server/src/main.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/server/src/main.cpp b/server/src/main.cpp index 61a2474..54bb498 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -18,8 +18,35 @@ */ +#include <dlfcn.h> +#include <api_module_metadata_storage.h> + +core_api module_api; + +void module_load_test() +{ + void *lib = dlopen("./modules/metadata/libflat_files.so", RTLD_LAZY); + if(!lib) + { + printf("%s\n", dlerror()); + return; + } + void *fptr = dlsym(lib, "load"); + if(!fptr) + { + printf("%s\n", dlerror()); + dlclose(lib); + return; + } + void *(*f)(void); + f = (void* (*)())fptr; + module_metadata_storage *m = static_cast<module_metadata_storage*>(f()); + m->load(&module_api); +} + int main(int argc, char *argv[]) { + module_load_test(); return 0; } |