Clio  develop
The XRP Ledger API server.
Loading...
Searching...
No Matches
StopHelper.hpp
1#pragma once
2
3#include <boost/asio/spawn.hpp>
4#include <boost/signals2/signal.hpp>
5#include <boost/signals2/variadic_signal.hpp>
6
7#include <atomic>
8#include <memory>
9
10namespace util {
11
15class StopHelper {
16 boost::signals2::signal<void()> onStopReady_;
17 std::unique_ptr<std::atomic_bool> stopped_ = std::make_unique<std::atomic_bool>(false);
18
19public:
20 StopHelper() = default;
21 ~StopHelper() = default;
22
23 StopHelper(StopHelper&&) = delete;
24 StopHelper&
25 operator=(StopHelper&&) = delete;
26 StopHelper(StopHelper const&) = delete;
27 StopHelper&
28 operator=(StopHelper const&) = delete;
29
33 void
35
41 void
42 asyncWaitForStop(boost::asio::yield_context yield);
43};
44
45} // namespace util
void asyncWaitForStop(boost::asio::yield_context yield)
Wait for the class to stop.
Definition StopHelper.cpp:20
void readyToStop()
Notify that the class is ready to stop.
Definition StopHelper.cpp:13
This namespace contains various utilities.
Definition AccountUtils.hpp:11