1
0

Refactoring

This commit is contained in:
Scott E. Graves
2017-05-11 12:00:14 -05:00
parent a0813802c9
commit e0024243bb
20 changed files with 223 additions and 176 deletions

View File

@@ -35,7 +35,6 @@ private:
std::shared_ptr<Api::CSiaDriveConfig> _siaDriveConfig;
std::unique_ptr<Api::CAutoThread> _refreshThread;
std::unique_ptr<Api::CSiaApi> _siaApi;
std::unique_ptr<Api::CSiaCurl> _siaCurl;
#ifdef _WIN32
std::unique_ptr<Api::Dokan::CSiaDokanDrive> _siaDrive;
#else
@@ -66,7 +65,7 @@ private:
static void ExecuteSetter(CefRefPtr<CefV8Context> context, CefRefPtr<CefV8Value> obj, const SString& method, const SString& value);
static void ExecuteSetter(CefRefPtr<CefV8Context> context, CefRefPtr<CefV8Value> obj, const SString& method, CefRefPtr<CefV8Value> value);
void ShutdownServices(CefRefPtr<CefBrowser> browser);
void SiaApiRefreshCallback(CefRefPtr<CefV8Context> context, const Api::CSiaCurl& siaCurl, Api::CSiaDriveConfig* siaDriveConfig);
void SiaApiRefreshCallback(CefRefPtr<CefV8Context> context, Api::CSiaDriveConfig* siaDriveConfig);
void ReleaseObjects(CefRefPtr<CefBrowser> browser);
private:

View File

@@ -11,28 +11,26 @@ class CSiaCurl;
class SIADRIVE_EXPORTABLE CAutoThread
{
public:
CAutoThread(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
CAutoThread(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig, std::function<void(const CSiaCurl&, CSiaDriveConfig*)> autoThreadCallback);
CAutoThread(CSiaDriveConfig* siaDriveConfig);
CAutoThread(CSiaDriveConfig* siaDriveConfig, std::function<void(CSiaDriveConfig*)> autoThreadCallback);
public:
virtual ~CAutoThread();
private:
bool _stopRequested;
std::unique_ptr<CSiaCurl> _siaCurl;
CSiaDriveConfig* _siaDriveConfig;
std::function<void(const CSiaCurl&, CSiaDriveConfig*)> _AutoThreadCallback;
std::function<void(CSiaDriveConfig*)> _AutoThreadCallback;
std::unique_ptr<std::thread> _thread;
std::mutex _startStopMutex;
std::mutex _stopMutex;
std::condition_variable _stopEvent;
protected:
virtual void AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
virtual void AutoThreadCallback(CSiaDriveConfig* siaDriveConfig);
public:
bool IsRunning() const;
SiaHostConfig GetHostConfig() const;
void StartAutoThread();
void StopAutoThread();
};

View File

@@ -12,8 +12,7 @@ class CSiaDriveConfig;
class SIADRIVE_EXPORTABLE CSiaBase
{
public:
explicit CSiaBase(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) :
_siaCurl(siaCurl),
explicit CSiaBase(CSiaDriveConfig* siaDriveConfig) :
_siaDriveConfig(siaDriveConfig)
{
}
@@ -24,15 +23,9 @@ public:
}
private:
const CSiaCurl& _siaCurl;
CSiaDriveConfig* _siaDriveConfig;
protected:
inline const CSiaCurl& GetSiaCurl() const
{
return _siaCurl;
}
public:
inline CSiaDriveConfig& GetSiaDriveConfig() const
{
return *_siaDriveConfig;
@@ -70,7 +63,7 @@ public:
friend _CSiaFileTree;
public:
explicit _CSiaFile(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig, const json& fileJson);
explicit _CSiaFile(CSiaDriveConfig* siaDriveConfig, const json& fileJson);
public:
virtual ~_CSiaFile();
@@ -90,7 +83,7 @@ public:
{
friend CSiaApi;
public:
explicit _CSiaFileTree(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
explicit _CSiaFileTree(CSiaDriveConfig* siaDriveConfig);
public:
virtual ~_CSiaFileTree();
@@ -112,7 +105,7 @@ public:
{
friend CSiaApi;
private:
explicit _CSiaWallet(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
explicit _CSiaWallet(CSiaDriveConfig* siaDriveConfig);
public:
virtual ~_CSiaWallet();
@@ -126,7 +119,7 @@ public:
Property(SString, ReceiveAddress, public, private)
private:
virtual void Refresh(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
virtual void Refresh();
public:
CSiaError<_SiaApiErrorCode> Create(const SString& password, const _SiaSeedLanguage& seedLanguage, SString& seed);
@@ -151,7 +144,7 @@ public:
} _SiaRenterAllowance;
private:
explicit _CSiaRenter(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
explicit _CSiaRenter(CSiaDriveConfig* siaDriveConfig);
public:
virtual ~_CSiaRenter();
@@ -172,7 +165,7 @@ public:
SiaCurrency _uploadterabyte;
private:
void Refresh(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
void Refresh();
public:
CSiaError<_SiaApiErrorCode> CalculateEstimatedStorage(const SiaCurrency& funds, SiaCurrency& resultInBytes) const;
@@ -194,7 +187,7 @@ public:
friend CSiaApi;
private:
explicit _CSiaConsensus(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
explicit _CSiaConsensus(CSiaDriveConfig* siaDriveConfig);
public:
virtual ~_CSiaConsensus();
@@ -205,7 +198,7 @@ public:
Property(SString, CurrentBlock, public, private)
private:
void Refresh(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
void Refresh();
};
class SIADRIVE_EXPORTABLE _CSiaHost :
@@ -214,7 +207,7 @@ public:
friend CSiaApi;
private:
explicit _CSiaHost(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig, const json& hostJson);
explicit _CSiaHost(CSiaDriveConfig* siaDriveConfig, const json& hostJson);
public:
virtual ~_CSiaHost();
@@ -239,7 +232,7 @@ public:
friend CSiaApi;
private:
explicit _CSiaHostDb(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
explicit _CSiaHostDb(CSiaDriveConfig* siaDriveConfig);
public:
virtual ~_CSiaHostDb();
@@ -248,21 +241,19 @@ public:
std::shared_ptr<std::vector<std::shared_ptr<_CSiaHost>>> _activeHosts;
private:
void Refresh(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
void Refresh();
public:
std::shared_ptr<std::vector<std::shared_ptr<_CSiaHost>>> GetActiveHosts() const;
};
public:
explicit CSiaApi(const SiaHostConfig& hostConfig, CSiaDriveConfig* siaDriveConfig);
explicit CSiaApi(CSiaDriveConfig* siaDriveConfig);
public:
~CSiaApi();
private:
SiaHostConfig _hostConfig;
CSiaCurl _siaCurl;
CSiaDriveConfig* _siaDriveConfig;
std::shared_ptr<_CSiaWallet> _wallet;
std::shared_ptr<_CSiaRenter> _renter;
@@ -271,7 +262,7 @@ private:
std::unique_ptr<CAutoThread> _refreshThread;
private:
void Refresh(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
void Refresh();
public:
static SString FormatToSiaPath(SString path);
@@ -284,7 +275,6 @@ public:
std::shared_ptr<_CSiaConsensus> GetConsensus() const;
std::shared_ptr<_CSiaHostDb> GetHostDb() const;
SString GetServerVersion() const;
SiaHostConfig GetHostConfig() const;
};
typedef CSiaApi::_SiaApiErrorCode SiaApiErrorCode;

View File

@@ -49,7 +49,10 @@ private:
void Save() const;
public:
SiaHostConfig GetHostConfig() const;
SString ToString() const;
};

View File

@@ -20,6 +20,7 @@ public:
enum class _UploadStatus : unsigned
{
NotFound,
Remove,
Queued,
Uploading,
Complete
@@ -43,25 +44,26 @@ private:
} UploadData;
public:
CUploadManager(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
CUploadManager(CSiaDriveConfig* siaDriveConfig, const CSiaApi& siaApi);
public:
virtual ~CUploadManager();
private:
CSiaDriveConfig* _siaDriveConfig;
const CSiaApi& _siaApi;
SQLite::Database _uploadDatabase;
std::mutex _uploadMutex;
std::shared_ptr<std::vector<CSiaFilePtr>> _uploadFileList;
private:
void DeleteFilesNotFound(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
void DeleteFilesRemovedFromSia(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig, const bool& isStartup = false);
CSiaDriveConfig* GetSiaDriveConfig() const { return _siaDriveConfig; }
void HandleFileRemove(const CSiaCurl& siaCurl, const SString& siaPath);
void DeleteFilesNotFound(CSiaDriveConfig* siaDriveConfig);
void DeleteFilesRemovedFromSia(CSiaDriveConfig* siaDriveConfig, const bool& isStartup = false);
CSiaDriveConfig& GetSiaDriveConfig() const { return *_siaDriveConfig; }
void HandleFileRemove(const SString& siaPath);
protected:
virtual void AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) override;
virtual void AutoThreadCallback(CSiaDriveConfig* siaDriveConfig) override;
public:
static SString UploadStatusToString(const _UploadStatus& uploadStatus);

View File

@@ -37,13 +37,13 @@ class SIADRIVE_DOKAN_EXPORTABLE CSiaDokanDrive
{
public:
// throws SiaDokenDriveException
CSiaDokanDrive(CSiaApi& siaApi, CSiaDriveConfig* siaDriveConfig);
CSiaDokanDrive(CSiaApi* siaApi, CSiaDriveConfig* siaDriveConfig);
public:
~CSiaDokanDrive();
private:
CSiaApi& _siaApi;
CSiaApi* _siaApi;
CSiaDriveConfig* _siaDriveConfig;
std::mutex _startStopMutex;