diff options
Diffstat (limited to 'server/modules/metadata')
-rw-r--r-- | server/modules/metadata/flat_files/main.cpp | 13 | ||||
-rw-r--r-- | server/modules/metadata/flat_files/main.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/server/modules/metadata/flat_files/main.cpp b/server/modules/metadata/flat_files/main.cpp index d0e1040..5fe2182 100644 --- a/server/modules/metadata/flat_files/main.cpp +++ b/server/modules/metadata/flat_files/main.cpp @@ -163,6 +163,19 @@ bool storage_impl::remove(const std::string &module_name, const std::string &set return true; } +std::list<std::string> storage_impl::setting_list(const std::string &module_name) +{ + std::list<std::string> l; + std::string settings_dir = parsed_data_path; + settings_dir += "/"; + settings_dir += module_name; + for(auto i = boost::filesystem::directory_iterator(settings_dir), end = boost::filesystem::directory_iterator(); i != end; ++i) + { + l.push_back(i->path().string().substr(settings_dir.length() + 1)); + } + return l; +} + storage_impl::storage_impl() { } diff --git a/server/modules/metadata/flat_files/main.h b/server/modules/metadata/flat_files/main.h index 3d228f4..df62488 100644 --- a/server/modules/metadata/flat_files/main.h +++ b/server/modules/metadata/flat_files/main.h @@ -38,6 +38,7 @@ class storage_impl: public module_metadata_storage bool set(const std::string &module_name, const std::string &setting_name, const std::vector<char> &data); bool get(const std::string &module_name, const std::string &setting_name, std::vector<char> &data); bool remove(const std::string &module_name, const std::string &setting_name); + std::list<std::string> setting_list(const std::string &module_name); private: void on_modules_loaded(); |