From 0c9dd8ea102db49c9702d36d8a13c013d6e5df86 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Sun, 29 Mar 2015 04:41:17 +0300 Subject: api fixes implemented get_module_settings --- server/include/api_core.h | 15 ++++++++------- server/include/api_module_base.h | 2 ++ server/include/modules_handler.h | 10 ++++++---- 3 files changed, 16 insertions(+), 11 deletions(-) (limited to 'server/include') diff --git a/server/include/api_core.h b/server/include/api_core.h index 1663f09..7dcec4d 100644 --- a/server/include/api_core.h +++ b/server/include/api_core.h @@ -30,13 +30,14 @@ class module_base; class core_api { - //core - std::map get_module_settings(const module_base *m); - - //metadata - bool metadata_set(const module_base *m, const std::string &setting_name, const std::vector &data); - bool metadata_get(const module_base *m, const std::string &setting_name, std::vector &data); - bool metadata_remove(const module_base *m, const std::string &setting_name); + public: + //core + virtual std::map get_module_settings(module_base *m); + + //metadata + virtual bool metadata_set(module_base *m, const std::string &setting_name, const std::vector &data); + virtual bool metadata_get(module_base *m, const std::string &setting_name, std::vector &data); + virtual bool metadata_remove(module_base *m, const std::string &setting_name); }; diff --git a/server/include/api_module_base.h b/server/include/api_module_base.h index 38c9a00..1a9fc4f 100644 --- a/server/include/api_module_base.h +++ b/server/include/api_module_base.h @@ -22,11 +22,13 @@ #ifndef API_MODULE_BASE_H_INCLUDED #define API_MODULE_BASE_H_INCLUDED #include +#include struct module_info { std::string name, description, version; std::map default_settings; //to save in config file + boost::function on_modules_loaded; }; class module_base diff --git a/server/include/modules_handler.h b/server/include/modules_handler.h index 2459d9c..c111faf 100644 --- a/server/include/modules_handler.h +++ b/server/include/modules_handler.h @@ -30,17 +30,19 @@ class modules_handler { public: modules_handler(); - std::string list_modules(short verbose_level = 0); + void load_modules(); + void on_modules_loaded(); + std::string list_modules(); ~modules_handler(); private: void load_metadata_modules(const std::string &path); void load_downloader_modules(const std::string &path); void sync_module_settings(module_base *m); + std::string list_modules_single_type_internal(const std::list &modules); std::string get_self_path(); std::string self_path; - std::list metadata_modules; - std::list downloader_modules; - + std::list metadata_modules; + std::list downloader_modules; }; -- cgit v1.2.3