Initial Vexta Core v0.1.0 release
This commit is contained in:
commit
25c454329d
2481 changed files with 689289 additions and 0 deletions
40
src/interfaces/handler.h
Normal file
40
src/interfaces/handler.h
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
// Copyright (c) 2018-2020 The Bitcoin Core developers
|
||||
// Copyright (c) 2018-2020 The DigiByte Core developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#ifndef DIGIBYTE_INTERFACES_HANDLER_H
|
||||
#define DIGIBYTE_INTERFACES_HANDLER_H
|
||||
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
|
||||
namespace boost {
|
||||
namespace signals2 {
|
||||
class connection;
|
||||
} // namespace signals2
|
||||
} // namespace boost
|
||||
|
||||
namespace interfaces {
|
||||
|
||||
//! Generic interface for managing an event handler or callback function
|
||||
//! registered with another interface. Has a single disconnect method to cancel
|
||||
//! the registration and prevent any future notifications.
|
||||
class Handler
|
||||
{
|
||||
public:
|
||||
virtual ~Handler() {}
|
||||
|
||||
//! Disconnect the handler.
|
||||
virtual void disconnect() = 0;
|
||||
};
|
||||
|
||||
//! Return handler wrapping a boost signal connection.
|
||||
std::unique_ptr<Handler> MakeHandler(boost::signals2::connection connection);
|
||||
|
||||
//! Return handler wrapping a cleanup function.
|
||||
std::unique_ptr<Handler> MakeHandler(std::function<void()> cleanup);
|
||||
|
||||
} // namespace interfaces
|
||||
|
||||
#endif // DIGIBYTE_INTERFACES_HANDLER_H
|
||||
Loading…
Reference in a new issue