diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2017-08-11 13:38:42 +0100 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2017-08-11 13:38:42 +0100 |
commit | e499ff3322fd46b1107681184dac300fcc7dbebd (patch) | |
tree | f95d2bb37d50006a0b32af6c37ffc41c57097957 /src/simplewallet | |
parent | scoped_message_writer: pause readline to match simplewallet (diff) | |
download | monero-e499ff3322fd46b1107681184dac300fcc7dbebd.tar.xz |
simplewallet: factor out message_writer
Diffstat (limited to 'src/simplewallet')
-rw-r--r-- | src/simplewallet/simplewallet.cpp | 88 |
1 files changed, 8 insertions, 80 deletions
diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 596c298d7..3d66b7aa6 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -48,6 +48,7 @@ #include "common/util.h" #include "common/dns_utils.h" #include "common/base58.h" +#include "common/scoped_message_writer.h" #include "p2p/net_node.h" #include "cryptonote_protocol/cryptonote_protocol_handler.h" #include "simplewallet.h" @@ -62,14 +63,6 @@ #include "wallet/wallet_args.h" #include <stdexcept> -#ifdef HAVE_READLINE - #include "readline_buffer.h" - #define PAUSE_READLINE() \ - rdln::suspend_readline pause_readline; -#else - #define PAUSE_READLINE() -#endif - using namespace std; using namespace epee; using namespace cryptonote; @@ -147,84 +140,19 @@ namespace return err; } - class message_writer + tools::scoped_message_writer success_msg_writer(bool color = false) { - public: - message_writer(console_colors color = console_color_default, bool bright = false, - std::string&& prefix = std::string(), el::Level log_level = el::Level::Info) - : m_flush(true) - , m_color(color) - , m_bright(bright) - , m_log_level(log_level) - { - m_oss << prefix; - } - - message_writer(message_writer&& rhs) - : m_flush(std::move(rhs.m_flush)) -#if defined(_MSC_VER) - , m_oss(std::move(rhs.m_oss)) -#else - // GCC bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316 - , m_oss(rhs.m_oss.str(), ios_base::out | ios_base::ate) -#endif - , m_color(std::move(rhs.m_color)) - , m_log_level(std::move(rhs.m_log_level)) - { - rhs.m_flush = false; - } - - template<typename T> - std::ostream& operator<<(const T& val) - { - m_oss << val; - return m_oss; - } - - ~message_writer() - { - if (m_flush) - { - m_flush = false; - - MCLOG(m_log_level, "global", m_oss.str()); - - if (console_color_default == m_color) - { - std::cout << m_oss.str(); - } - else - { - PAUSE_READLINE(); - set_console_color(m_color, m_bright); - std::cout << m_oss.str(); - reset_console_color(); - } - std::cout << std::endl; - } - } - - private: - message_writer(message_writer& rhs); - message_writer& operator=(message_writer& rhs); - message_writer& operator=(message_writer&& rhs); - - private: - bool m_flush; - std::stringstream m_oss; - console_colors m_color; - bool m_bright; - el::Level m_log_level; - }; + return tools::scoped_message_writer(color ? console_color_green : console_color_default, false, std::string(), el::Level::Info); + } - message_writer success_msg_writer(bool color = false) + tools::scoped_message_writer message_writer(epee::console_colors color = epee::console_color_default, bool bright = false) { - return message_writer(color ? console_color_green : console_color_default, false, std::string(), el::Level::Info); + return tools::scoped_message_writer(color, bright); } - message_writer fail_msg_writer() + tools::scoped_message_writer fail_msg_writer() { - return message_writer(console_color_red, true, sw::tr("Error: "), el::Level::Error); + return tools::scoped_message_writer(console_color_red, true, sw::tr("Error: "), el::Level::Error); } bool is_it_true(const std::string& s) |