Toast Engine
Loading...
Searching...
No Matches
tree_lock.hpp
Go to the documentation of this file.
1
7
8#pragma once
9
10#include <toast/export.hpp>
11
12namespace toast {
13
14class INodeOwner;
15class Node;
16
18class TOAST_API TreeReadLock {
19public:
20 explicit TreeReadLock(const INodeOwner* owner) noexcept;
21 explicit TreeReadLock(const Node& node) noexcept;
22 ~TreeReadLock();
23
24 TreeReadLock(const TreeReadLock&) = delete;
25 auto operator=(const TreeReadLock&) -> TreeReadLock& = delete;
26 TreeReadLock(TreeReadLock&&) = delete;
27 auto operator=(TreeReadLock&&) -> TreeReadLock& = delete;
28
29private:
30 const INodeOwner* m_owner;
31};
32
34class TOAST_API TreeWriteLock {
35public:
36 explicit TreeWriteLock(const INodeOwner* owner) noexcept;
37 explicit TreeWriteLock(const Node& node) noexcept;
38 ~TreeWriteLock();
39
40 TreeWriteLock(const TreeWriteLock&) = delete;
41 auto operator=(const TreeWriteLock&) -> TreeWriteLock& = delete;
42 TreeWriteLock(TreeWriteLock&&) = delete;
43 auto operator=(TreeWriteLock&&) -> TreeWriteLock& = delete;
44
45private:
46 const INodeOwner* m_owner;
47};
48
49}
Definition node_owner.hpp:38
Definition node.hpp:81