10 #include <log4cplus/loggingmacros.h>
22 *
this = std::move(rhs);
27 m_resource->Release();
29 m_resource = rhs.m_resource;
30 rhs.m_resource =
nullptr;
45 return boost::make_ready_future<ResourceToken>(*std::move(maybe_token));
47 auto& ref = m_promises.emplace();
48 return ref.get_future();
53 return m_signal.connect(slot);
62 auto promise = std::move(m_promises.front());
~ResourceToken() noexcept
ResourceToken & operator=(ResourceToken &)=delete
ResourceToken(Resource *) noexcept
boost::future< ResourceToken > AsyncAcquire() noexcept
boost::signals2::connection Connect(Signal::slot_type const &slot)
Connect to signal that is emitted when a resource become available.
std::optional< ResourceToken > Acquire() noexcept
friend class ResourceToken
bool HasResource() const noexcept