wallet2_api: milliseconds resolution for auto-refresh interval

pull/1136/head
Ilya Kitaev 8 years ago
parent 7b4a85b309
commit 3079c5756b

@ -46,7 +46,7 @@ namespace Bitmonero {
namespace { namespace {
// copy-pasted from simplewallet // copy-pasted from simplewallet
static const size_t DEFAULT_MIXIN = 4; static const size_t DEFAULT_MIXIN = 4;
static const int DEFAULT_REFRESH_INTERVAL_SECONDS = 10; static const int DEFAULT_REFRESH_INTERVAL_MILLIS = 1000 * 10;
} }
struct Wallet2CallbackImpl : public tools::i_wallet2_callback struct Wallet2CallbackImpl : public tools::i_wallet2_callback
@ -79,7 +79,7 @@ struct Wallet2CallbackImpl : public tools::i_wallet2_callback
if (m_listener) { if (m_listener) {
m_listener->newBlock(height); m_listener->newBlock(height);
m_listener->updated(); // m_listener->updated();
} }
} }
@ -174,7 +174,7 @@ WalletImpl::WalletImpl(bool testnet)
m_refreshThreadDone = false; m_refreshThreadDone = false;
m_refreshEnabled = false; m_refreshEnabled = false;
m_refreshIntervalSeconds = DEFAULT_REFRESH_INTERVAL_SECONDS; m_refreshIntervalMillis = DEFAULT_REFRESH_INTERVAL_MILLIS;
m_refreshThread = boost::thread([this] () { m_refreshThread = boost::thread([this] () {
this->refreshThreadFunc(); this->refreshThreadFunc();
@ -451,14 +451,14 @@ void WalletImpl::refreshAsync()
m_refreshCV.notify_one(); m_refreshCV.notify_one();
} }
void WalletImpl::setAutoRefreshInterval(int seconds) void WalletImpl::setAutoRefreshInterval(int millis)
{ {
m_refreshIntervalSeconds = seconds; m_refreshIntervalMillis = millis;
} }
int WalletImpl::autoRefreshInterval() const int WalletImpl::autoRefreshInterval() const
{ {
return m_refreshIntervalSeconds; return m_refreshIntervalMillis;
} }
// TODO: // TODO:
@ -675,8 +675,8 @@ void WalletImpl::refreshThreadFunc()
LOG_PRINT_L3(__FUNCTION__ << ": waiting for refresh..."); LOG_PRINT_L3(__FUNCTION__ << ": waiting for refresh...");
// if auto refresh enabled, we wait for the "m_refreshIntervalSeconds" interval. // if auto refresh enabled, we wait for the "m_refreshIntervalSeconds" interval.
// if not - we wait forever // if not - we wait forever
if (m_refreshIntervalSeconds > 0) { if (m_refreshIntervalMillis > 0) {
boost::posix_time::milliseconds wait_for_ms(m_refreshIntervalSeconds * 1000); boost::posix_time::milliseconds wait_for_ms(m_refreshIntervalMillis);
m_refreshCV.timed_wait(lock, wait_for_ms); m_refreshCV.timed_wait(lock, wait_for_ms);
} else { } else {
m_refreshCV.wait(lock); m_refreshCV.wait(lock);

@ -79,7 +79,7 @@ public:
uint64_t daemonBlockChainHeight() const; uint64_t daemonBlockChainHeight() const;
bool refresh(); bool refresh();
void refreshAsync(); void refreshAsync();
void setAutoRefreshInterval(int seconds); void setAutoRefreshInterval(int millis);
int autoRefreshInterval() const; int autoRefreshInterval() const;
@ -118,7 +118,7 @@ private:
// multi-threaded refresh stuff // multi-threaded refresh stuff
std::atomic<bool> m_refreshEnabled; std::atomic<bool> m_refreshEnabled;
std::atomic<bool> m_refreshThreadDone; std::atomic<bool> m_refreshThreadDone;
std::atomic<int> m_refreshIntervalSeconds; std::atomic<int> m_refreshIntervalMillis;
// synchronizing refresh loop; // synchronizing refresh loop;
boost::mutex m_refreshMutex; boost::mutex m_refreshMutex;

@ -269,12 +269,12 @@ struct Wallet
/** /**
* @brief setAutoRefreshInterval - setup interval for automatic refresh. * @brief setAutoRefreshInterval - setup interval for automatic refresh.
* @param seconds - interval in seconds. if zero or less than zero - automatic refresh disabled; * @param seconds - interval in millis. if zero or less than zero - automatic refresh disabled;
*/ */
virtual void setAutoRefreshInterval(int seconds) = 0; virtual void setAutoRefreshInterval(int millis) = 0;
/** /**
* @brief autoRefreshInterval - returns automatic refresh interval in seconds * @brief autoRefreshInterval - returns automatic refresh interval in millis
* @return * @return
*/ */
virtual int autoRefreshInterval() const = 0; virtual int autoRefreshInterval() const = 0;

Loading…
Cancel
Save