LeviLamina
Loading...
Searching...
No Matches
ServiceReference.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/deps/core/utility/NonOwnerPointer.h"
5#include "mc/platform/threading/PrioritizeSharedOwnership.h"
6
7template <typename T>
9public:
10 std::shared_lock<Bedrock::Threading::PrioritizeSharedOwnership> mLock;
12
13 Bedrock::NonOwnerPointer<T> get() const { return mService; }
14
15 explicit operator bool() const { return static_cast<bool>(mService); }
16
17 template <class Fn>
18 decltype(auto) doWith(Fn&& fn) {
19 return (std::invoke(std::forward<Fn>(fn), *mService));
20 }
21};
Definition NonOwnerPointer.h:9
Definition ServiceReference.h:8