9 #include <boost/signals2/connection.hpp> 15 class HandlerImpl :
public Handler
18 explicit HandlerImpl(boost::signals2::connection connection) :
m_connection(
std::move(connection)) {}
20 void disconnect()
override {
m_connection.disconnect(); }
25 class CleanupHandler :
public Handler
28 explicit CleanupHandler(std::function<
void()> cleanup) :
m_cleanup(std::move(cleanup)) {}
36 std::unique_ptr<Handler>
MakeHandler(boost::signals2::connection connection)
38 return MakeUnique<HandlerImpl>(std::move(connection));
41 std::unique_ptr<Handler>
MakeHandler(std::function<
void()> cleanup)
43 return MakeUnique<CleanupHandler>(std::move(cleanup));
boost::signals2::scoped_connection m_connection
std::unique_ptr< Handler > MakeHandler(boost::signals2::connection connection)
Return handler wrapping a boost signal connection.
std::function< void()> m_cleanup