From f2f8169c61bcc51ce946efc1624161540d257f96 Mon Sep 17 00:00:00 2001 From: Hepatica Date: Sun, 11 Aug 2024 02:22:09 +0200 Subject: [PATCH] Change scope of file processing and adjust di in publish contoller --- SpCloudMain/Controllers/PublishController.cpp | 12 ++++++------ SpCloudMain/Service/FileProcessingService.cpp | 9 +++++++-- SpCloudMain/SpCloudMain.cpp | 5 +++-- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/SpCloudMain/Controllers/PublishController.cpp b/SpCloudMain/Controllers/PublishController.cpp index 46afb46..0bcc3b9 100644 --- a/SpCloudMain/Controllers/PublishController.cpp +++ b/SpCloudMain/Controllers/PublishController.cpp @@ -12,18 +12,18 @@ class PublishController private: AuthorizationService authorization; - FileProcessingService file_processing; + std::shared_ptr file_processing;//Smart pointer std::string publish_app_path = "/mnt/c/Users/Danil/SpCloudApp"; //std::string publish_app_path = "/home/danilt2000/SpCloud/"; //std::string publish_app_path = "C:/Temps/";// Todo delete if not needed public: - PublishController(httplib::Server& svr, AuthorizationService authorization, FileProcessingService file_processing) + PublishController(httplib::Server& svr, AuthorizationService authorization, std::shared_ptr file_processing) : authorization(authorization), file_processing(file_processing) { - this->authorization = authorization; + /*this->authorization = authorization; - this->file_processing = file_processing; + this->file_processing = file_processing;*/ svr.Post("/publish", [this](const httplib::Request& req, httplib::Response& res) { @@ -43,7 +43,7 @@ private: if (filename.size() >= 4 && filename.substr(filename.size() - 4) == ".rar") { //if (file_processing.save_file_with_retry(filename, content)) { - if (file_processing.save_file(filename, content)) { + if (file_processing->save_file(filename, content)) { //Todo uncommit later //std::string random_string = generate_random_string(20);//Todo think about change @@ -74,7 +74,7 @@ private: void dotnet_publish(const std::string& path) { - std::string dll_file_name = file_processing.find_file_by_suffix(path, "dll"); + std::string dll_file_name = file_processing->find_file_by_suffix(path, "dll"); std::string command = R"(dotnet )" + path + "/" + dll_file_name; diff --git a/SpCloudMain/Service/FileProcessingService.cpp b/SpCloudMain/Service/FileProcessingService.cpp index 1d3be89..0ba1fe5 100644 --- a/SpCloudMain/Service/FileProcessingService.cpp +++ b/SpCloudMain/Service/FileProcessingService.cpp @@ -6,15 +6,18 @@ #include #include #include "CommandService.cpp" +#include "Logger.cpp" //#include //#include //#include class FileProcessingService { + public: - FileProcessingService(/*&Logger logger*/) + FileProcessingService(Logger& logger) : logger_(logger) { + } bool save_file(const std::string& filename, const std::string& content) { @@ -25,8 +28,9 @@ public: if (!ofs) return false; - ofs << content; + logger_.log(INFO, "Start saving file"); + ofs << content; return ofs.good(); } @@ -136,4 +140,5 @@ public: /*private: std::mutex file_mutex; */// Мьютекс для синхронизации доступа к файлу + Logger& logger_; }; diff --git a/SpCloudMain/SpCloudMain.cpp b/SpCloudMain/SpCloudMain.cpp index bb66214..e4ce0fa 100644 --- a/SpCloudMain/SpCloudMain.cpp +++ b/SpCloudMain/SpCloudMain.cpp @@ -7,7 +7,6 @@ #include "httplib.h" #include "Controllers/PublishController.cpp" //#include "Service/AuthorizationService.cpp" -#include "Service/Logger.cpp" //#include "Service/FileProcessingService.cpp" using namespace std; @@ -36,7 +35,9 @@ int main() AuthorizationService authorization_service; - FileProcessingService file_processing; + //FileProcessingService file_processing(logger); + + auto file_processing = std::make_shared(logger); PublishController publish_controller(svr, authorization_service, file_processing);