From b713f08786b0abf2c1dcc0c4f040e3e1947b448c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kecsk=C3=A9s=20Kriszti=C3=A1n?= <kk1205@sch.bme.hu> Date: Tue, 24 Nov 2015 00:17:15 +0100 Subject: [PATCH] mappanevek kivezetve Modified program/Source/app/Application.cpp Modified program/Source/cloud/CloudAdapter.h Modified program/Source/cloud/DropboxAdapter.h Modified program/Source/cloud/FTPAdapter.cpp Modified program/Source/cloud/FTPAdapter.h Modified program/Source/cloud/LocalCloudAdapter.h Modified program/Source/dataAccess/CloudFileSystem.cpp Modified program/Source/dataAccess/CloudFileSystem.h Modified program/Source/dataAccess/Decoder.cpp Modified program/Source/dataAccess/Decoder.h Modified program/Source/dataAccess/Encoder.cpp Modified program/Source/dataAccess/Encoder.h --- program/Source/app/Application.cpp | 12 +++++++++++ program/Source/cloud/CloudAdapter.h | 8 ++++++++ program/Source/cloud/DropboxAdapter.h | 4 +--- program/Source/cloud/FTPAdapter.cpp | 1 - program/Source/cloud/FTPAdapter.h | 1 - program/Source/cloud/LocalCloudAdapter.h | 4 ---- program/Source/dataAccess/CloudFileSystem.cpp | 20 ++++++++++++++++++- program/Source/dataAccess/CloudFileSystem.h | 12 ++++++++++- program/Source/dataAccess/Decoder.cpp | 14 +++++++++++-- program/Source/dataAccess/Decoder.h | 7 +++++-- program/Source/dataAccess/Encoder.cpp | 14 +++++++++++-- program/Source/dataAccess/Encoder.h | 7 +++++-- 12 files changed, 85 insertions(+), 19 deletions(-) diff --git a/program/Source/app/Application.cpp b/program/Source/app/Application.cpp index 3f2e4044..711abfb8 100644 --- a/program/Source/app/Application.cpp +++ b/program/Source/app/Application.cpp @@ -40,6 +40,18 @@ int main(int argc, char **argv) { //application.ui = app::UI(); application.ui.app = &application; + string dataFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\data\\"; + string fragFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\temp\\"; + string cloudFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\cloud\\"; + + application.cfs.getEncoder()->setFolders(dataFolder,fragFolder); + application.cfs.getDecoder()->setFolders(dataFolder,fragFolder); + application.cfs.setFolders(fragFolder); + + for (auto ca : application.cm.getCloudList()){ + ca->setFolders(cloudFolder, fragFolder); + } + Application::DeleteThisUglyWorkaround_App_Instance = &application; if (argc > 1 && (Application::SERVER.compare(argv[1]) == 0)) diff --git a/program/Source/cloud/CloudAdapter.h b/program/Source/cloud/CloudAdapter.h index 23b5c0f5..c3771500 100644 --- a/program/Source/cloud/CloudAdapter.h +++ b/program/Source/cloud/CloudAdapter.h @@ -16,9 +16,17 @@ * we only need to implement this each time */ class CloudAdapter { +protected: + std::string fragFolder; + std::string cloudFolder; public: std::string cloudID; + void setFolders(std::string _cloudFolder, std::string _fragFolder){ + cloudFolder = _cloudFolder; + fragFolder = _fragFolder; + } + /** * CloudApater constructor * @param _cloudID the ID of the cloud that is implemented diff --git a/program/Source/cloud/DropboxAdapter.h b/program/Source/cloud/DropboxAdapter.h index 498a151c..93b3bbb1 100644 --- a/program/Source/cloud/DropboxAdapter.h +++ b/program/Source/cloud/DropboxAdapter.h @@ -12,8 +12,6 @@ * DropboxAdapter class */ class DropboxAdapter : public CloudAdapter { - const std::string fragFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\temp\\"; - const std::string contentHost = "content.dropboxapi.com"; const std::string apiHost = "api.dropboxapi.com"; @@ -24,7 +22,7 @@ class DropboxAdapter : public CloudAdapter { const std::string tokenApiPath = "/1/oauth2/token"; - const std::string appKey = "vmwjix7pf6y3hq6"; + const std::string appKey = "vmwjix7pf6y3hq6"; const std::string appSecret = "t0tktamnuj2y6bd"; const std::string authCodeType = "authorization_code"; diff --git a/program/Source/cloud/FTPAdapter.cpp b/program/Source/cloud/FTPAdapter.cpp index c932a6ff..91df9150 100644 --- a/program/Source/cloud/FTPAdapter.cpp +++ b/program/Source/cloud/FTPAdapter.cpp @@ -15,7 +15,6 @@ using namespace Poco; using namespace boost::filesystem; using namespace std; -const string FTPAdapter::fragFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\temp\\"; const string FTPAdapter::USERNAME = "b18_16883957"; const string FTPAdapter::PASSWORD = "lolwutdoge"; const string FTPAdapter::HOST = "ftp.byethost18.com"; diff --git a/program/Source/cloud/FTPAdapter.h b/program/Source/cloud/FTPAdapter.h index 7b95c429..87529254 100644 --- a/program/Source/cloud/FTPAdapter.h +++ b/program/Source/cloud/FTPAdapter.h @@ -10,7 +10,6 @@ * DropboxAdapter class */ class FTPAdapter : public CloudAdapter { - static const std::string fragFolder; static const std::string USERNAME; static const std::string PASSWORD; static const std::string HOST; diff --git a/program/Source/cloud/LocalCloudAdapter.h b/program/Source/cloud/LocalCloudAdapter.h index dc87b49c..97d20c21 100644 --- a/program/Source/cloud/LocalCloudAdapter.h +++ b/program/Source/cloud/LocalCloudAdapter.h @@ -13,10 +13,6 @@ * while real clouds are not used */ class LocalCloudAdapter : public CloudAdapter { -private: - std::string sourceFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\data\\"; - std::string fragFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\temp\\"; - std::string cloudFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\cloud\\"; public: LocalCloudAdapter(std::string _cloudID = "localAdapter"); diff --git a/program/Source/dataAccess/CloudFileSystem.cpp b/program/Source/dataAccess/CloudFileSystem.cpp index 419e2f0d..59c3b8f9 100644 --- a/program/Source/dataAccess/CloudFileSystem.cpp +++ b/program/Source/dataAccess/CloudFileSystem.cpp @@ -24,13 +24,31 @@ CloudFileSystem::CloudFileSystem(Application &application) : { cfl.setPersPath("store.dat"); cfl.load(); - + encoder = new Encoder(); + decoder = new Decoder(); } CloudFileSystem::~CloudFileSystem(){ delete this->cache; + delete encoder; + delete decoder; +} + +Encoder* CloudFileSystem::getEncoder(){ + return encoder; } + +Decoder* CloudFileSystem::getDecoder(){ + return decoder; +} + +void CloudFileSystem::setFolders(string _fragFolder){ + fragFolder = _fragFolder; +} + +string CloudFileSystem::fragFolder = ""; + // Not working as we planned, maybe should be rethinked void CloudFileSystem::setComputeOnPi(bool computeOnPi){ LOG_ENTER_EXIT; diff --git a/program/Source/dataAccess/CloudFileSystem.h b/program/Source/dataAccess/CloudFileSystem.h index bb410b0c..be828a81 100644 --- a/program/Source/dataAccess/CloudFileSystem.h +++ b/program/Source/dataAccess/CloudFileSystem.h @@ -15,6 +15,8 @@ #include "../networking/HomeNetworkCommunications.h" #include "Cache.h" #include "CloudFileList.h" +#include "../dataAccess/Encoder.h" +#include "../dataAccess/Decoder.h" class Application; @@ -25,7 +27,7 @@ class Application; * It handles mutexes, cache usage and directories. */ class CloudFileSystem { - std::string fragFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\temp\\"; + static std::string fragFolder; /** * Indicates where is the process running @@ -55,8 +57,16 @@ class CloudFileSystem { Cache *cache; CloudFileList cfl; + + Encoder* encoder; + Decoder* decoder; public: + Encoder* getEncoder(); + Decoder* getDecoder(); + + void setFolders(std::string _fragFolder); + static CloudFileSystem& getInstance(); /*{ static CloudFileSystem instance; diff --git a/program/Source/dataAccess/Decoder.cpp b/program/Source/dataAccess/Decoder.cpp index 27ecadd5..3dffc8e6 100644 --- a/program/Source/dataAccess/Decoder.cpp +++ b/program/Source/dataAccess/Decoder.cpp @@ -14,10 +14,20 @@ using namespace std; * Decoder implementation */ +void Decoder::setFolders(string _dataFolder, string _fragFolder){ + dataFolder = _dataFolder; + fragFolder = _fragFolder; +} + +string Decoder::dataFolder = ""; +string Decoder::fragFolder = ""; + string Decoder::decode(FileDescriptor* fileDescriptor) { - string dataFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\data\\"; - string fragFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\temp\\"; + if (dataFolder == "" || fragFolder == "") { + cout << "Error: folders not set." << endl; + return NULL; + } LOG_ENTER_EXIT; if (fileDescriptor == nullptr) diff --git a/program/Source/dataAccess/Decoder.h b/program/Source/dataAccess/Decoder.h index cd4f0388..712a72ac 100644 --- a/program/Source/dataAccess/Decoder.h +++ b/program/Source/dataAccess/Decoder.h @@ -9,8 +9,11 @@ * it uses an external library */ class Decoder { -public: - + static std::string dataFolder; + static std::string fragFolder; +public: + void setFolders(std::string _dataFolder, std::string _fragFolder); + /** * decodes the fragments to a file * @param fileDescriptor descriptor of the file to decode diff --git a/program/Source/dataAccess/Encoder.cpp b/program/Source/dataAccess/Encoder.cpp index c942ba92..2907d1bf 100644 --- a/program/Source/dataAccess/Encoder.cpp +++ b/program/Source/dataAccess/Encoder.cpp @@ -17,10 +17,20 @@ using namespace boost; using namespace filesystem; using namespace std; +void Encoder::setFolders(string _dataFolder, string _fragFolder){ + dataFolder = _dataFolder; + fragFolder = _fragFolder; +} + +string Encoder::dataFolder = ""; +string Encoder::fragFolder = ""; + FileDescriptor* Encoder::encode(string localFileID, string destinationFileID) { LOG_ENTER_EXIT; - string dataFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\data\\"; - string fragFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\temp\\"; + if (dataFolder == "" || fragFolder == "") { + cout << "Error: folders not set." << endl; + return NULL; + } string encode_filename = dataFolder + localFileID; diff --git a/program/Source/dataAccess/Encoder.h b/program/Source/dataAccess/Encoder.h index 8c5a4dda..d8625309 100644 --- a/program/Source/dataAccess/Encoder.h +++ b/program/Source/dataAccess/Encoder.h @@ -10,8 +10,11 @@ * it uses an external library */ class Encoder { -public: - + static std::string dataFolder; + static std::string fragFolder; +public: + void setFolders(std::string _dataFolder, std::string _fragFolder); + /** * encodes the file to fragments * @param localFileID id of the file to encode -- GitLab