Bitcoin ABC  0.28.12
P2P Digital Currency
handler.h
Go to the documentation of this file.
1 // Copyright (c) 2018 The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef BITCOIN_INTERFACES_HANDLER_H
6 #define BITCOIN_INTERFACES_HANDLER_H
7 
8 #include <functional>
9 #include <memory>
10 
11 namespace boost {
12 namespace signals2 {
13  class connection;
14 } // namespace signals2
15 } // namespace boost
16 
17 namespace interfaces {
18 
22 class Handler {
23 public:
24  virtual ~Handler() {}
25 
27  virtual void disconnect() = 0;
28 };
29 
31 std::unique_ptr<Handler> MakeHandler(boost::signals2::connection connection);
32 
34 std::unique_ptr<Handler> MakeHandler(std::function<void()> cleanup);
35 
36 } // namespace interfaces
37 
38 #endif // BITCOIN_INTERFACES_HANDLER_H
Generic interface for managing an event handler or callback function registered with another interfac...
Definition: handler.h:22
virtual ~Handler()
Definition: handler.h:24
virtual void disconnect()=0
Disconnect the handler.
std::unique_ptr< Handler > MakeHandler(boost::signals2::connection connection)
Return handler wrapping a boost signal connection.
Definition: handler.cpp:48