5#ifndef MOSTLYHARMLESS_PROXY_H
6#define MOSTLYHARMLESS_PROXY_H
79 explicit Proxy([[maybe_unused]] Private, T* toWrap) : m_wrapped(toWrap) {
86 [[nodiscard]]
static std::shared_ptr<Proxy<T>>
create(T* toWrap)
noexcept {
87 return std::make_shared<Proxy<T>>(Private{}, toWrap);
95 std::scoped_lock<std::mutex> sl{ m_mutex };
103 std::scoped_lock<std::mutex> sl{ m_mutex };
112 std::scoped_lock<std::mutex> sl{ m_mutex };
118 T* m_wrapped{
nullptr };
Proxy(Private, T *toWrap)
Definition mostlyharmless_Proxy.h:79
static std::shared_ptr< Proxy< T > > create(T *toWrap) noexcept
Definition mostlyharmless_Proxy.h:86
T * getWrapped() noexcept
Definition mostlyharmless_Proxy.h:94
bool isValid() noexcept
Definition mostlyharmless_Proxy.h:111
void null() noexcept
Definition mostlyharmless_Proxy.h:102
Contains general purpose utility classes & functions.
Definition mostlyharmless_TaskThread.h:12