Fixed a bug related to the file transfer

This commit is contained in:
WolverinDEV
2020-09-16 14:15:06 +02:00
parent 2a1f0187ac
commit 38d6ad4920
11 changed files with 674 additions and 584 deletions
+18 -10
View File
@@ -5,6 +5,8 @@
#include <netinet/in.h>
#include <log/LogUtils.h>
#include "LocalFileProvider.h"
#include "LocalFileSystem.h"
#include "LocalFileTransfer.h"
using namespace ts::server;
using LocalFileServer = file::LocalFileProvider;
@@ -72,36 +74,42 @@ std::shared_ptr<file::AbstractFileServer> file::server() {
return server_instance;
}
LocalFileServer::LocalFileProvider() : file_system_{}, file_transfer_{this->file_system_} {}
LocalFileServer::~LocalFileProvider() = default;
LocalFileServer::LocalFileProvider() {
this->file_system_ = new filesystem::LocalFileSystem();
this->file_transfer_ = new transfer::LocalFileTransfer(this->file_system_);
}
LocalFileServer::~LocalFileProvider() {
delete this->file_transfer_;
delete this->file_system_;
};
bool LocalFileServer::initialize(std::string &error) {
if(!this->file_system_.initialize(error, "files/"))
if(!this->file_system_->initialize(error, "files/"))
return false;
if(!this->file_transfer_.start()) {
if(!this->file_transfer_->start()) {
error = "transfer server startup failed";
this->file_system_.finalize();
this->file_system_->finalize();
return false;
}
return true;
}
void LocalFileServer::finalize() {
this->file_transfer_.stop();
this->file_system_.finalize();
this->file_transfer_->stop();
this->file_system_->finalize();
}
file::filesystem::AbstractProvider &LocalFileServer::file_system() {
return this->file_system_;
return *this->file_system_;
}
file::transfer::AbstractProvider &LocalFileServer::file_transfer() {
return this->file_transfer_;
return *this->file_transfer_;
}
std::string file::LocalFileProvider::file_base_path() const {
return this->file_system_.root_path();
return this->file_system_->root_path();
}
std::shared_ptr<file::VirtualFileServer> LocalFileServer::register_server(ServerId server_id) {