diff options
author | Russell Yanofsky <russ@yanofsky.org> | 2019-09-27 07:31:44 -0400 |
---|---|---|
committer | João Barbosa <joao.paulo.barbosa@gmail.com> | 2020-01-14 09:34:35 +0000 |
commit | 7e66d04770bfb21862e52736c4859d7a878cb906 (patch) | |
tree | ca7cd6afd4defa0fcac5e68010d14664f666a5ea /src/interfaces/handler.cpp | |
parent | 179d55f0526082b46415a7f5b6c3742a403f3306 (diff) |
Drop signal CClientUIInterface::LoadWallet
Github-Pull: #16963
Rebased-From: 81ea66c30e2953dee24d5b127c28daa0d9452a28
Diffstat (limited to 'src/interfaces/handler.cpp')
-rw-r--r-- | src/interfaces/handler.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/interfaces/handler.cpp b/src/interfaces/handler.cpp index 92601fc4e9..4e235688fe 100644 --- a/src/interfaces/handler.cpp +++ b/src/interfaces/handler.cpp @@ -22,6 +22,15 @@ public: boost::signals2::scoped_connection m_connection; }; +class CleanupHandler : public Handler +{ +public: + explicit CleanupHandler(std::function<void()> cleanup) : m_cleanup(std::move(cleanup)) {} + ~CleanupHandler() override { if (!m_cleanup) return; m_cleanup(); m_cleanup = nullptr; } + void disconnect() override { if (!m_cleanup) return; m_cleanup(); m_cleanup = nullptr; } + std::function<void()> m_cleanup; +}; + } // namespace std::unique_ptr<Handler> MakeHandler(boost::signals2::connection connection) @@ -29,4 +38,9 @@ std::unique_ptr<Handler> MakeHandler(boost::signals2::connection connection) return MakeUnique<HandlerImpl>(std::move(connection)); } +std::unique_ptr<Handler> MakeHandler(std::function<void()> cleanup) +{ + return MakeUnique<CleanupHandler>(std::move(cleanup)); +} + } // namespace interfaces |