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 | |
parent | c46da5d47a706cee43ff62bc6649257fba508743 (diff) |
module api fixes (thx 0xd34df00d)
working module prototype
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/api_core.cpp | 41 | ||||
-rw-r--r-- | server/src/main.cpp | 27 |
2 files changed, 68 insertions, 0 deletions
diff --git a/server/src/api_core.cpp b/server/src/api_core.cpp new file mode 100644 index 0000000..5412624 --- /dev/null +++ b/server/src/api_core.cpp @@ -0,0 +1,41 @@ + +/* + Copyright © 2015 Gluzskiy Alexandr (sss) + + This file is part of Unknown Download Manager (UDM). + + UDM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + UDM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with UDM. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include <api_core.h> + + +bool core_api::metadata_set(const module_base *m, const std::string &setting_name, const std::vector<char> &data) +{ + //TODO + return true; +} + +bool core_api::metadata_get(const module_base *m, const std::string &setting_name, std::vector<char> &data) +{ + //TODO + return true; +} + +bool core_api::metadata_remove(const module_base *m, const std::string &setting_name) +{ + //TODO + return true; +} 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; } |