Pass config to api members
This commit is contained in:
@@ -3,8 +3,9 @@
|
|||||||
|
|
||||||
using namespace Sia::Api;
|
using namespace Sia::Api;
|
||||||
|
|
||||||
CAutoThread::CAutoThread(const CSiaCurl& siaCurl) :
|
CAutoThread::CAutoThread(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) :
|
||||||
_siaCurl(siaCurl.GetHostConfig()),
|
_siaCurl(siaCurl.GetHostConfig()),
|
||||||
|
_siaDriveConfig(siaDriveConfig),
|
||||||
_stopEvent(::CreateEvent(nullptr, FALSE, FALSE, nullptr))
|
_stopEvent(::CreateEvent(nullptr, FALSE, FALSE, nullptr))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -23,7 +24,7 @@ void CAutoThread::StartAutoThread()
|
|||||||
_thread.reset(new std::thread([this]() {
|
_thread.reset(new std::thread([this]() {
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
AutoThreadCallback(_siaCurl);
|
AutoThreadCallback(_siaCurl, _siaDriveConfig);
|
||||||
} while (::WaitForSingleObject(_stopEvent, 2000) == WAIT_TIMEOUT);
|
} while (::WaitForSingleObject(_stopEvent, 2000) == WAIT_TIMEOUT);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
@@ -5,16 +5,18 @@
|
|||||||
NS_BEGIN(Sia)
|
NS_BEGIN(Sia)
|
||||||
NS_BEGIN(Api)
|
NS_BEGIN(Api)
|
||||||
|
|
||||||
|
class CSiaDriveConfig;
|
||||||
class AFX_EXT_CLASS CAutoThread
|
class AFX_EXT_CLASS CAutoThread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CAutoThread(const CSiaCurl& siaCurl);
|
CAutoThread(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~CAutoThread();
|
virtual ~CAutoThread();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CSiaCurl _siaCurl;
|
CSiaCurl _siaCurl;
|
||||||
|
CSiaDriveConfig* _siaDriveConfig;
|
||||||
HANDLE _stopEvent;
|
HANDLE _stopEvent;
|
||||||
std::unique_ptr<std::thread> _thread;
|
std::unique_ptr<std::thread> _thread;
|
||||||
std::mutex _startStopMutex;
|
std::mutex _startStopMutex;
|
||||||
@@ -22,7 +24,7 @@ private:
|
|||||||
protected:
|
protected:
|
||||||
void StartAutoThread();
|
void StartAutoThread();
|
||||||
void StopAutoThread();
|
void StopAutoThread();
|
||||||
virtual void AutoThreadCallback(const CSiaCurl& siaCurl) = 0;
|
virtual void AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
NS_END(2)
|
NS_END(2)
|
@@ -1,14 +1,16 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "SiaApi.h"
|
#include "SiaApi.h"
|
||||||
#include <regex>
|
#include <regex>
|
||||||
|
#include "SiaDriveConfig.h"
|
||||||
|
|
||||||
using namespace Sia::Api;
|
using namespace Sia::Api;
|
||||||
|
|
||||||
CSiaApi::CSiaApi(const SiaHostConfig& hostConfig) :
|
CSiaApi::CSiaApi(const SiaHostConfig& hostConfig, CSiaDriveConfig* siaDriveConfig) :
|
||||||
_siaCurl(hostConfig),
|
_siaCurl(hostConfig),
|
||||||
_wallet(new CSiaWallet(_siaCurl)),
|
_siaDriveConfig(siaDriveConfig),
|
||||||
_renter(new CSiaRenter(_siaCurl)),
|
_wallet(new CSiaWallet(_siaCurl, siaDriveConfig)),
|
||||||
_consensus(new CSiaConsensus(_siaCurl))
|
_renter(new CSiaRenter(_siaCurl, siaDriveConfig)),
|
||||||
|
_consensus(new CSiaConsensus(_siaCurl, siaDriveConfig))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -7,11 +7,13 @@ NS_BEGIN(Sia)
|
|||||||
NS_BEGIN(Api)
|
NS_BEGIN(Api)
|
||||||
|
|
||||||
|
|
||||||
|
class CSiaDriveConfig;
|
||||||
class AFX_EXT_CLASS CSiaBase
|
class AFX_EXT_CLASS CSiaBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit CSiaBase(const CSiaCurl& siaCurl) :
|
explicit CSiaBase(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) :
|
||||||
_siaCurl(siaCurl)
|
_siaCurl(siaCurl),
|
||||||
|
_siaDriveConfig(siaDriveConfig)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,12 +24,18 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
const CSiaCurl& _siaCurl;
|
const CSiaCurl& _siaCurl;
|
||||||
|
CSiaDriveConfig* _siaDriveConfig;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
inline const CSiaCurl& GetSiaCurl() const
|
inline const CSiaCurl& GetSiaCurl() const
|
||||||
{
|
{
|
||||||
return _siaCurl;
|
return _siaCurl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline CSiaDriveConfig& GetSiaDriveConfig() const
|
||||||
|
{
|
||||||
|
return *_siaDriveConfig;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -60,7 +68,7 @@ public:
|
|||||||
friend _CSiaFileTree;
|
friend _CSiaFileTree;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit _CSiaFile(const CSiaCurl& siaCurl, const json& fileJson);
|
explicit _CSiaFile(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig, const json& fileJson);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~_CSiaFile();
|
virtual ~_CSiaFile();
|
||||||
@@ -80,7 +88,7 @@ public:
|
|||||||
{
|
{
|
||||||
friend CSiaApi;
|
friend CSiaApi;
|
||||||
public:
|
public:
|
||||||
explicit _CSiaFileTree(const CSiaCurl& siaCurl);
|
explicit _CSiaFileTree(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~_CSiaFileTree();
|
virtual ~_CSiaFileTree();
|
||||||
@@ -105,7 +113,7 @@ public:
|
|||||||
{
|
{
|
||||||
friend CSiaApi;
|
friend CSiaApi;
|
||||||
private:
|
private:
|
||||||
explicit _CSiaWallet(const CSiaCurl& siaCurl);
|
explicit _CSiaWallet(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~_CSiaWallet();
|
virtual ~_CSiaWallet();
|
||||||
@@ -132,7 +140,7 @@ public:
|
|||||||
friend CSiaApi;
|
friend CSiaApi;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit _CSiaRenter(const CSiaCurl& siaCurl);
|
explicit _CSiaRenter(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~_CSiaRenter();
|
virtual ~_CSiaRenter();
|
||||||
@@ -144,7 +152,7 @@ public:
|
|||||||
Property(std::uint32_t, TotalUploadProgress, public, private)
|
Property(std::uint32_t, TotalUploadProgress, public, private)
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void AutoThreadCallback(const CSiaCurl& siaCurl) override;
|
virtual void AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
_SiaApiError FileExists(const String& siaPath, bool& exists) const;
|
_SiaApiError FileExists(const String& siaPath, bool& exists) const;
|
||||||
@@ -161,7 +169,7 @@ public:
|
|||||||
friend CSiaApi;
|
friend CSiaApi;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit _CSiaConsensus(const CSiaCurl& siaCurl);
|
explicit _CSiaConsensus(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~_CSiaConsensus();
|
virtual ~_CSiaConsensus();
|
||||||
@@ -172,17 +180,18 @@ public:
|
|||||||
Property(String, CurrentBlock, public, private)
|
Property(String, CurrentBlock, public, private)
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void AutoThreadCallback(const CSiaCurl& siaCurl) override;
|
virtual void AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit CSiaApi(const SiaHostConfig& hostConfig);
|
explicit CSiaApi(const SiaHostConfig& hostConfig, CSiaDriveConfig* siaDriveConfig);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
~CSiaApi();
|
~CSiaApi();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CSiaCurl _siaCurl;
|
CSiaCurl _siaCurl;
|
||||||
|
CSiaDriveConfig* _siaDriveConfig;
|
||||||
std::shared_ptr<_CSiaWallet> _wallet;
|
std::shared_ptr<_CSiaWallet> _wallet;
|
||||||
std::shared_ptr<_CSiaRenter> _renter;
|
std::shared_ptr<_CSiaRenter> _renter;
|
||||||
std::shared_ptr<_CSiaConsensus> _consensus;
|
std::shared_ptr<_CSiaConsensus> _consensus;
|
||||||
|
@@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
using namespace Sia::Api;
|
using namespace Sia::Api;
|
||||||
|
|
||||||
CSiaApi::_CSiaConsensus::_CSiaConsensus(const CSiaCurl& siaCurl) :
|
CSiaApi::_CSiaConsensus::_CSiaConsensus(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) :
|
||||||
CSiaBase(siaCurl),
|
CSiaBase(siaCurl, siaDriveConfig),
|
||||||
CAutoThread(siaCurl),
|
CAutoThread(siaCurl, siaDriveConfig),
|
||||||
_Height(0),
|
_Height(0),
|
||||||
_Synced(false),
|
_Synced(false),
|
||||||
_CurrentBlock(L"")
|
_CurrentBlock(L"")
|
||||||
@@ -18,7 +18,7 @@ CSiaApi::_CSiaConsensus::~_CSiaConsensus()
|
|||||||
StopAutoThread();
|
StopAutoThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSiaApi::_CSiaConsensus::AutoThreadCallback(const CSiaCurl& siaCurl)
|
void CSiaApi::_CSiaConsensus::AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig)
|
||||||
{
|
{
|
||||||
json result;
|
json result;
|
||||||
if (ApiSuccess(siaCurl.Get(L"/consensus", result)))
|
if (ApiSuccess(siaCurl.Get(L"/consensus", result)))
|
||||||
|
@@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
using namespace Sia::Api;
|
using namespace Sia::Api;
|
||||||
|
|
||||||
CSiaApi::_CSiaFile::_CSiaFile(const CSiaCurl& siaCurl, const json& fileJson) :
|
CSiaApi::_CSiaFile::_CSiaFile(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig, const json& fileJson) :
|
||||||
CSiaBase(siaCurl),
|
CSiaBase(siaCurl, siaDriveConfig),
|
||||||
_SiaPath(CA2W(fileJson["siapath"].get<std::string>().c_str())),
|
_SiaPath(CA2W(fileJson["siapath"].get<std::string>().c_str())),
|
||||||
_FileSize(fileJson["filesize"].get<std::uint64_t>()),
|
_FileSize(fileJson["filesize"].get<std::uint64_t>()),
|
||||||
_Available(fileJson["available"].get<bool>()),
|
_Available(fileJson["available"].get<bool>()),
|
||||||
|
@@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
using namespace Sia::Api;
|
using namespace Sia::Api;
|
||||||
|
|
||||||
CSiaApi::_CSiaFileTree::_CSiaFileTree(const CSiaCurl& siaCurl) :
|
CSiaApi::_CSiaFileTree::_CSiaFileTree(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) :
|
||||||
CSiaBase(siaCurl)
|
CSiaBase(siaCurl, siaDriveConfig)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,7 @@ void CSiaApi::_CSiaFileTree::BuildTree(const json& result)
|
|||||||
_fileList.clear();
|
_fileList.clear();
|
||||||
for (const auto& file : result["files"])
|
for (const auto& file : result["files"])
|
||||||
{
|
{
|
||||||
_fileList.push_back(CSiaFilePtr(new CSiaFile(GetSiaCurl(), file)));
|
_fileList.push_back(CSiaFilePtr(new CSiaFile(GetSiaCurl(), &GetSiaDriveConfig(), file)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -46,9 +46,9 @@ using namespace Sia::Api;
|
|||||||
"unspent": "1234" // hastings
|
"unspent": "1234" // hastings
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
CSiaApi::_CSiaRenter::_CSiaRenter(const CSiaCurl& siaCurl) :
|
CSiaApi::_CSiaRenter::_CSiaRenter(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) :
|
||||||
CSiaBase(siaCurl),
|
CSiaBase(siaCurl, siaDriveConfig),
|
||||||
CAutoThread(siaCurl),
|
CAutoThread(siaCurl, siaDriveConfig),
|
||||||
_Funds(0),
|
_Funds(0),
|
||||||
_Hosts(0),
|
_Hosts(0),
|
||||||
_Unspent(0),
|
_Unspent(0),
|
||||||
@@ -63,7 +63,7 @@ CSiaApi::_CSiaRenter::~_CSiaRenter()
|
|||||||
StopAutoThread();
|
StopAutoThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSiaApi::_CSiaRenter::AutoThreadCallback(const CSiaCurl& siaCurl)
|
void CSiaApi::_CSiaRenter::AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig)
|
||||||
{
|
{
|
||||||
json result;
|
json result;
|
||||||
if (ApiSuccess(siaCurl.Get(L"/renter", result)))
|
if (ApiSuccess(siaCurl.Get(L"/renter", result)))
|
||||||
@@ -75,7 +75,7 @@ void CSiaApi::_CSiaRenter::AutoThreadCallback(const CSiaCurl& siaCurl)
|
|||||||
SetHosts(hosts);
|
SetHosts(hosts);
|
||||||
SetUnspent(unspent);
|
SetUnspent(unspent);
|
||||||
|
|
||||||
CSiaFileTreePtr fileTree(new CSiaFileTree(siaCurl));
|
CSiaFileTreePtr fileTree(new CSiaFileTree(siaCurl, siaDriveConfig));
|
||||||
if (ApiSuccess(siaCurl.Get(L"/renter/files", result)))
|
if (ApiSuccess(siaCurl.Get(L"/renter/files", result)))
|
||||||
{
|
{
|
||||||
fileTree->BuildTree(result);
|
fileTree->BuildTree(result);
|
||||||
@@ -147,7 +147,7 @@ SiaApiError CSiaApi::_CSiaRenter::QueueUploadFile(const String& siaPath, const S
|
|||||||
SiaApiError CSiaApi::_CSiaRenter::GetFileTree(CSiaFileTreePtr& siaFileTree) const
|
SiaApiError CSiaApi::_CSiaRenter::GetFileTree(CSiaFileTreePtr& siaFileTree) const
|
||||||
{
|
{
|
||||||
SiaApiError ret = SiaApiError::RequestError;
|
SiaApiError ret = SiaApiError::RequestError;
|
||||||
siaFileTree.reset(new CSiaFileTree(GetSiaCurl()));
|
siaFileTree.reset(new CSiaFileTree(GetSiaCurl(), &GetSiaDriveConfig()));
|
||||||
json result;
|
json result;
|
||||||
if (ApiSuccess(GetSiaCurl().Get(L"/renter/files", result)))
|
if (ApiSuccess(GetSiaCurl().Get(L"/renter/files", result)))
|
||||||
{
|
{
|
||||||
|
@@ -21,8 +21,8 @@ static String SeedLangToString(const SiaSeedLanguage& lang)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CSiaApi::_CSiaWallet::_CSiaWallet(const CSiaCurl& siaCurl) :
|
CSiaApi::_CSiaWallet::_CSiaWallet(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) :
|
||||||
CSiaBase(siaCurl),
|
CSiaBase(siaCurl, siaDriveConfig),
|
||||||
_Created(false),
|
_Created(false),
|
||||||
_Locked(false)
|
_Locked(false)
|
||||||
{
|
{
|
||||||
|
@@ -213,7 +213,7 @@ void CSiaDriveDlg::OnDocumentComplete(LPDISPATCH, LPCTSTR)
|
|||||||
KillTimer(IDT_UI_ACTION_QUEUE);
|
KillTimer(IDT_UI_ACTION_QUEUE);
|
||||||
|
|
||||||
// Create new API to clear all cached data used by threaded implementations
|
// Create new API to clear all cached data used by threaded implementations
|
||||||
_siaApi.reset(new CSiaApi({ L"localhost", 9980, L"1.1.0" }));
|
_siaApi.reset(new CSiaApi({ L"localhost", 9980, L"1.1.0" }, &_siaConfig));
|
||||||
|
|
||||||
ClearDisplay();
|
ClearDisplay();
|
||||||
CallClientScript(L"setAvailableDrives", json(GetAvailableDrives()), nullptr);
|
CallClientScript(L"setAvailableDrives", json(GetAvailableDrives()), nullptr);
|
||||||
|
Reference in New Issue
Block a user