diff --git a/SiaDrive.Api/UploadManager.cpp b/SiaDrive.Api/UploadManager.cpp index 06573ac..7a47c63 100644 --- a/SiaDrive.Api/UploadManager.cpp +++ b/SiaDrive.Api/UploadManager.cpp @@ -1,8 +1,10 @@ #include "stdafx.h" #include "UploadManager.h" #include "SiaDriveConfig.h" + using namespace Sia::Api; + CUploadManager::CUploadManager(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) : CAutoThread(siaCurl, siaDriveConfig), _uploadDatabase(siaDriveConfig->GetRenter_UploadDbFilePath(), SQLite::OPEN_CREATE | SQLite::OPEN_READWRITE) @@ -18,4 +20,30 @@ CUploadManager::~CUploadManager() void CUploadManager::AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) { +} + + +UploadStatus CUploadManager::GetUploadStatus(const String& siaPath) const +{ + return UploadStatus::NotFound; +} + +void CUploadManager::AddOrUpdate(const String& siaPath, const String& filePath) +{ + +} + +void CUploadManager::PurgeCompleteStatus() +{ + +} + +void CUploadManager::PurgeErrorStatus() +{ + +} + +void CUploadManager::Remove(const String& siaPath) +{ + } \ No newline at end of file diff --git a/SiaDrive.Api/UploadManager.h b/SiaDrive.Api/UploadManager.h index 7b3183f..7716083 100644 --- a/SiaDrive.Api/UploadManager.h +++ b/SiaDrive.Api/UploadManager.h @@ -1,6 +1,7 @@ #pragma once #include "AutoThread.h" #include "SQLiteCpp/Database.h" +#include NS_BEGIN(Sia) NS_BEGIN(Api) @@ -8,6 +9,25 @@ NS_BEGIN(Api) class AFX_EXT_CLASS CUploadManager : public CAutoThread { +public: + enum class _UploadStatus + { + NotFound, + Queued, + Uploading, + Complete, + Error + }; + +private: + typedef struct + { + std::uint64_t Id; + String SiaPath; + String CachePath; + _UploadStatus Status; + } UploadData; + public: CUploadManager(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig); @@ -16,9 +36,19 @@ public: private: SQLite::Database _uploadDatabase; + std::mutex _uploadMutex; protected: virtual void AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) override; + +public: + _UploadStatus GetUploadStatus(const String& siaPath) const; + void AddOrUpdate(const String& siaPath, const String& filePath); + void Remove(const String& siaPath); + void PurgeCompleteStatus(); + void PurgeErrorStatus(); }; +typedef Sia::Api::CUploadManager::_UploadStatus UploadStatus; + NS_END(2) \ No newline at end of file