mirror of
https://github.com/oxen-io/oxen-core.git
synced 2023-12-14 02:22:56 +01:00
Don't couple the cancelling wallet code with console_handler
This commit is contained in:
parent
6a357fa499
commit
c7cf2935a3
|
@ -298,16 +298,10 @@ eof:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class t_server, class chain_handler>
|
|
||||||
bool run(t_server* psrv, chain_handler ch_handler, std::function<std::string(void)> prompt, const std::string& usage = "")
|
|
||||||
{
|
|
||||||
return run(prompt, usage, [&](const std::string& cmd) { return ch_handler(psrv, cmd); }, [&] { psrv->send_stop_signal(); });
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class chain_handler>
|
template<class chain_handler>
|
||||||
bool run(chain_handler ch_handler, std::function<std::string(void)> prompt, const std::string& usage = "", std::function<void(void)> exit_handler = NULL)
|
bool run(chain_handler ch_handler, std::function<std::string(void)> prompt, const std::string& usage = "", std::function<void(void)> exit_handler = NULL)
|
||||||
{
|
{
|
||||||
return run(prompt, usage, [&](const boost::optional<std::string>& cmd) { return ch_handler(cmd); }, exit_handler);
|
return run(prompt, usage, [&](const std::string& cmd) { return ch_handler(cmd); }, exit_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
void stop()
|
void stop()
|
||||||
|
@ -374,7 +368,6 @@ eof:
|
||||||
if (m_cancel)
|
if (m_cancel)
|
||||||
{
|
{
|
||||||
MDEBUG("Input cancelled");
|
MDEBUG("Input cancelled");
|
||||||
cmd_handler(boost::none);
|
|
||||||
m_cancel = false;
|
m_cancel = false;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -419,7 +412,6 @@ eof:
|
||||||
class command_handler {
|
class command_handler {
|
||||||
public:
|
public:
|
||||||
typedef std::function<bool(const std::vector<std::string> &)> callback;
|
typedef std::function<bool(const std::vector<std::string> &)> callback;
|
||||||
typedef boost::function<bool (void)> empty_callback;
|
|
||||||
typedef std::map<std::string, std::pair<callback, std::pair<std::string, std::string>>> lookup;
|
typedef std::map<std::string, std::pair<callback, std::pair<std::string, std::string>>> lookup;
|
||||||
|
|
||||||
/// Go through registered commands in sorted order, call the function with three string
|
/// Go through registered commands in sorted order, call the function with three string
|
||||||
|
@ -492,23 +484,15 @@ eof:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool process_command_and_log(const boost::optional<std::string>& cmd)
|
bool process_command_and_log(const std::string& cmd)
|
||||||
{
|
{
|
||||||
if (!cmd)
|
|
||||||
return m_cancel_handler();
|
|
||||||
std::vector<std::string> cmd_v;
|
std::vector<std::string> cmd_v;
|
||||||
boost::split(cmd_v,*cmd,boost::is_any_of(" "), boost::token_compress_on);
|
boost::split(cmd_v, cmd, boost::is_any_of(" "), boost::token_compress_on);
|
||||||
return process_command_and_log(cmd_v);
|
return process_command_and_log(cmd_v);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_cancel_handler(const empty_callback& hndlr)
|
|
||||||
{
|
|
||||||
m_cancel_handler = hndlr;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
lookup m_command_handlers;
|
lookup m_command_handlers;
|
||||||
empty_callback m_cancel_handler;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
|
@ -2146,12 +2146,6 @@ bool simple_wallet::version(const std::vector<std::string> &args)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool simple_wallet::on_cancelled_command()
|
|
||||||
{
|
|
||||||
check_for_inactivity_lock(false);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool simple_wallet::cold_sign_tx(const std::vector<tools::wallet2::pending_tx>& ptx_vector, tools::wallet2::signed_tx_set &exported_txs, std::vector<cryptonote::address_parse_info> const &dsts_info, std::function<bool(const tools::wallet2::signed_tx_set &)> accept_func)
|
bool simple_wallet::cold_sign_tx(const std::vector<tools::wallet2::pending_tx>& ptx_vector, tools::wallet2::signed_tx_set &exported_txs, std::vector<cryptonote::address_parse_info> const &dsts_info, std::function<bool(const tools::wallet2::signed_tx_set &)> accept_func)
|
||||||
{
|
{
|
||||||
std::vector<std::string> tx_aux;
|
std::vector<std::string> tx_aux;
|
||||||
|
@ -3106,8 +3100,6 @@ Pending or Failed: "failed"|"pending", "out", Lock, Checkpointed, Time, Amount*
|
||||||
tr(USAGE_HELP),
|
tr(USAGE_HELP),
|
||||||
tr("Show the help section or the documentation about a <command>."));
|
tr("Show the help section or the documentation about a <command>."));
|
||||||
|
|
||||||
m_cmd_binder.set_cancel_handler(boost::bind(&simple_wallet::on_cancelled_command, this));
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Loki
|
// Loki
|
||||||
//
|
//
|
||||||
|
@ -8494,6 +8486,7 @@ bool simple_wallet::check_inactivity()
|
||||||
{
|
{
|
||||||
m_locked = true;
|
m_locked = true;
|
||||||
m_cmd_binder.cancel_input();
|
m_cmd_binder.cancel_input();
|
||||||
|
check_for_inactivity_lock(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -298,7 +298,6 @@ namespace cryptonote
|
||||||
bool freeze_thaw(const std::vector<std::string>& args, bool freeze);
|
bool freeze_thaw(const std::vector<std::string>& args, bool freeze);
|
||||||
|
|
||||||
bool on_command(bool (simple_wallet::*cmd)(const std::vector<std::string>&), const std::vector<std::string> &args);
|
bool on_command(bool (simple_wallet::*cmd)(const std::vector<std::string>&), const std::vector<std::string> &args);
|
||||||
bool on_cancelled_command();
|
|
||||||
void check_for_inactivity_lock(bool user);
|
void check_for_inactivity_lock(bool user);
|
||||||
|
|
||||||
bool get_transfers(std::vector<std::string>& args_, std::vector<tools::transfer_view>& transfers);
|
bool get_transfers(std::vector<std::string>& args_, std::vector<tools::transfer_view>& transfers);
|
||||||
|
@ -448,7 +447,7 @@ namespace cryptonote
|
||||||
std::atomic<bool> m_locked;
|
std::atomic<bool> m_locked;
|
||||||
std::atomic<bool> m_in_command;
|
std::atomic<bool> m_in_command;
|
||||||
|
|
||||||
epee::math_helper::periodic_task m_inactivity_checker{1s};
|
epee::math_helper::periodic_task m_inactivity_checker{10s};
|
||||||
epee::math_helper::periodic_task m_refresh_checker{90s};
|
epee::math_helper::periodic_task m_refresh_checker{90s};
|
||||||
epee::math_helper::periodic_task m_mms_checker{90s};
|
epee::math_helper::periodic_task m_mms_checker{90s};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue