#include "plugin.h" #include #include #include #include #include #include "plugin_interface.h" namespace dll = boost::dll; namespace fs = std::filesystem; using namespace std::string_literals; void load_plugins(Config& config) { const auto& plugin_directories{config.PluginDirectories()}; for (const auto& dir: plugin_directories) { for (auto& path: fs::recursive_directory_iterator(dir)) { if (path.is_regular_file()) { dll::fs::path lib_path{path.path()}; boost::shared_ptr plugin = dll::import(lib_path, "webserver_plugin", dll::load_mode::append_decorations); if (!plugin) throw std::runtime_error("Can't load plugin"); std::cout << "Plugin: " << plugin->generate_page("a") << std::endl; } } } }