From 6874b87d11db3fe603fa870a3a127373a5b1fe87 Mon Sep 17 00:00:00 2001 From: Danila Slesarev Date: Mon, 15 May 2023 22:34:36 +0300 Subject: [PATCH] feat(server/plugins): plugins import works --- .../plugins/PluginsLoader/PluginsLoader.hpp | 8 +++-- .../PluginsProvider/PluginsProvider.cpp | 1 + .../DefinitionsProviderWrapper.cpp | 5 +++ server/main.cpp | 31 ++++++++++++++++--- 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/server/lib/plugins/PluginsLoader/PluginsLoader.hpp b/server/lib/plugins/PluginsLoader/PluginsLoader.hpp index 0cea93b..14724f5 100644 --- a/server/lib/plugins/PluginsLoader/PluginsLoader.hpp +++ b/server/lib/plugins/PluginsLoader/PluginsLoader.hpp @@ -95,9 +95,11 @@ class PluginsLoader : public IPluginsLoader { auto wrapper_or_error = Wrapper::build(plugin_name, res->second); if (std::holds_alternative>( wrapper_or_error)) { - return *dynamic_cast( - &std::get>( - wrapper_or_error)); + auto base_wrapper = + std::get>( + wrapper_or_error); + auto after_cast = *static_cast(&base_wrapper); + return after_cast; } return std::nullopt; } diff --git a/server/lib/plugins/PluginsProvider/PluginsProvider.cpp b/server/lib/plugins/PluginsProvider/PluginsProvider.cpp index daa03c4..45a12e1 100644 --- a/server/lib/plugins/PluginsProvider/PluginsProvider.cpp +++ b/server/lib/plugins/PluginsProvider/PluginsProvider.cpp @@ -1,4 +1,5 @@ #include "PluginsProvider.hpp" +#include "pylifecycle.h" #include "spdlog/common.h" PluginsProvider::PluginsProvider(PluginTypesLocationsConfig &&confg) diff --git a/server/lib/plugins/wrappers/DefinitionsProviderWrapper/DefinitionsProviderWrapper.cpp b/server/lib/plugins/wrappers/DefinitionsProviderWrapper/DefinitionsProviderWrapper.cpp index 64b9d4e..09a7ae1 100644 --- a/server/lib/plugins/wrappers/DefinitionsProviderWrapper/DefinitionsProviderWrapper.cpp +++ b/server/lib/plugins/wrappers/DefinitionsProviderWrapper/DefinitionsProviderWrapper.cpp @@ -5,3 +5,8 @@ auto DefinitionsProviderWrapper::get(const std::string &word, -> std::variant { return {}; } + +auto DefinitionsProviderWrapper::get_dictionary_scheme() + -> std::variant { + return {}; +} diff --git a/server/main.cpp b/server/main.cpp index 3459437..4054153 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -1,15 +1,36 @@ +#include "DefinitionsProviderWrapper.hpp" +#include "FormatProcessorWrapper.hpp" #include "PluginTypesLocationsConfig.hpp" #include "PluginsProvider.hpp" #include "Server.hpp" #include +#include +#include #include auto main(int argc, char *argv[]) -> int { - auto plugins_dirs = PluginTypesLocationsConfig("", "", "", "", ""); + Py_Initialize(); + auto plugins_dirs = PluginTypesLocationsConfig( + "/home/blackdeer/projects/cpp/technopark/plugins/definitions/", + "/home/blackdeer/projects/cpp/technopark/plugins/sentences/", + "/home/blackdeer/projects/cpp/technopark/plugins/images/", + "/home/blackdeer/projects/cpp/technopark/plugins/audios/", + "/home/blackdeer/projects/cpp/technopark/plugins/format_processors/"); boost::asio::io_context io_context; - auto plugins_provider = - std::make_shared(std::move(plugins_dirs)); - auto server = PluginServer(std::move(plugins_provider), io_context, 8888); - io_context.run(); + // auto plugins_provider = + // std::make_shared(std::move(plugins_dirs)); + auto plugins_provider = PluginsProvider(std::move(plugins_dirs)); + auto format_processor_or_error = + plugins_provider.get_format_processor("processor").value(); + + auto format_processor = + std::get(format_processor_or_error); + // constexpr uint64_t batch_size = 5; + auto res_or_error = format_processor.get({"query", "123", "9595"}); + auto res = std::get(res_or_error); + + std::cout << res << std::endl; + // auto server = PluginServer(std::move(plugins_provider), io_context, + // 8888); io_context.run(); } -- GitLab