sead
Loading...
Searching...
No Matches
seadScopedLock.h
Go to the documentation of this file.
1#ifndef SEAD_SCOPED_LOCK_H_
2#define SEAD_SCOPED_LOCK_H_
3
4#include <basis/seadTypes.h>
5
6namespace sead {
7
8template <typename T>
10{
11public:
12 explicit ScopedLock(T* t)
13 : mLocked(t)
14 {
15 mLocked->lock();
16 }
17
18 virtual ~ScopedLock()
19 {
20 mLocked->unlock();
21 }
22
23private:
25 const ScopedLock<T>& operator=(const ScopedLock<T>&);
26
27protected:
29};
30
31template <typename T>
33{
34public:
35 explicit ConditionalScopedLock(T* t, bool cond)
36 : mLocked(nullptr)
37 {
38 if (cond)
39 {
40 mLocked = t;
41 mLocked->lock();
42 }
43 }
44
46 {
47 if (mLocked != nullptr)
48 mLocked->unlock();
49 }
50
51private:
54
55protected:
57};
58
59} // namespace sead
60
61#endif // SEAD_SCOPED_LOCK_H_
Definition seadScopedLock.h:33
const ConditionalScopedLock< T > & operator=(const ConditionalScopedLock< T > &)
T * mLocked
Definition seadScopedLock.h:56
ConditionalScopedLock(T *t, bool cond)
Definition seadScopedLock.h:35
ConditionalScopedLock(const ConditionalScopedLock< T > &)
virtual ~ConditionalScopedLock()
Definition seadScopedLock.h:45
Definition seadScopedLock.h:10
T * mLocked
Definition seadScopedLock.h:28
virtual ~ScopedLock()
Definition seadScopedLock.h:18
const ScopedLock< T > & operator=(const ScopedLock< T > &)
ScopedLock(const ScopedLock< T > &)
ScopedLock(T *t)
Definition seadScopedLock.h:12
Definition seadAssert.h:44