1
0

Refactoring

This commit is contained in:
Scott E. Graves
2017-02-18 10:15:01 -06:00
parent bac3fad30c
commit 3949ba30e1
11 changed files with 193 additions and 102 deletions

View File

@@ -1,10 +1,36 @@
#pragma once
#include "SiaCommon.h"
#include "SiaCurl.h"
#include "AutoThread.h"
NS_BEGIN(Sia)
NS_BEGIN(Api)
class AFX_EXT_CLASS CSiaBase
{
public:
explicit CSiaBase(const CSiaCurl& siaCurl) :
_siaCurl(siaCurl)
{
}
public:
virtual ~CSiaBase() = 0
{
}
private:
const CSiaCurl& _siaCurl;
protected:
inline const CSiaCurl& GetSiaCurl() const
{
return _siaCurl;
}
};
class AFX_EXT_CLASS CSiaApi
{
public:
@@ -27,19 +53,17 @@ public:
};
class _CSiaFileTree;
class AFX_EXT_CLASS _CSiaFile
class AFX_EXT_CLASS _CSiaFile :
public virtual CSiaBase
{
friend CSiaApi;
friend _CSiaFileTree;
private:
_CSiaFile(CSiaCurl& siaCurl, const json& fileJson);
explicit _CSiaFile(const CSiaCurl& siaCurl, const json& fileJson);
public:
~_CSiaFile();
private:
CSiaCurl& _siaCurl;
virtual ~_CSiaFile();
// Properties
Property(String, SiaPath, public, private)
@@ -51,17 +75,15 @@ public:
Property(std::uint32_t, Expiration, public, private)
};
class AFX_EXT_CLASS _CSiaFileTree
class AFX_EXT_CLASS _CSiaFileTree :
public virtual CSiaBase
{
friend CSiaApi;
public:
_CSiaFileTree(CSiaCurl& siaCurl);
explicit _CSiaFileTree(const CSiaCurl& siaCurl);
public:
~_CSiaFileTree();
private:
CSiaCurl& _siaCurl;
virtual ~_CSiaFileTree();
private:
std::vector<std::shared_ptr<_CSiaFile>> _fileList;
@@ -78,17 +100,15 @@ public:
bool FileExists(const String& siaPath) const;
};
class AFX_EXT_CLASS _CSiaWallet
class AFX_EXT_CLASS _CSiaWallet :
public virtual CSiaBase
{
friend CSiaApi;
private:
_CSiaWallet(CSiaCurl& siaCurl);
explicit _CSiaWallet(const CSiaCurl& siaCurl);
public:
~_CSiaWallet();
private:
CSiaCurl& _siaCurl;
virtual ~_CSiaWallet();
// Properties
Property(bool, Created, public, private)
@@ -105,18 +125,21 @@ public:
_SiaApiError GetAddress(String& address) const;
};
class AFX_EXT_CLASS _CSiaRenter
class AFX_EXT_CLASS _CSiaRenter :
public virtual CSiaBase,
public virtual CAutoThread
{
friend CSiaApi;
private:
_CSiaRenter(CSiaCurl& siaCurl);
explicit _CSiaRenter(const CSiaCurl& siaCurl);
public:
~_CSiaRenter();
private:
CSiaCurl& _siaCurl;
virtual ~_CSiaRenter();
protected:
virtual void AutoThreadCallback(const CSiaCurl& siaCurl) override;
public:
_SiaApiError FileExists(const String& siaPath, bool& exists) const;
_SiaApiError DeleteFile(const String& siaPath);
@@ -125,34 +148,29 @@ public:
_SiaApiError GetFileTree(std::shared_ptr<_CSiaFileTree>& siaFileTree) const;
};
class AFX_EXT_CLASS _CSiaConsensus
class AFX_EXT_CLASS _CSiaConsensus :
public virtual CSiaBase,
public virtual CAutoThread
{
friend CSiaApi;
private:
_CSiaConsensus(CSiaCurl& siaCurl);
explicit _CSiaConsensus(const CSiaCurl& siaCurl);
public:
~_CSiaConsensus();
private:
CSiaCurl _siaCurl;
private:
HANDLE _stopEvent;
std::unique_ptr<std::thread> _refreshThread;
virtual ~_CSiaConsensus();
// Properties
Property(std::uint64_t, Height, public, private)
Property(bool, Synced, public, private)
Property(String, CurrentBlock, public, private)
private:
void StartRefreshThread();
void StopRefreshThread();
protected:
virtual void AutoThreadCallback(const CSiaCurl& siaCurl) override;
};
public:
CSiaApi(const SiaHostConfig& hostConfig);
explicit CSiaApi(const SiaHostConfig& hostConfig);
public:
~CSiaApi();