Samchon Framework for CPP  1.0.0
UniqueReadLock.hpp
1 #pragma once
2 #include <samchon/API.hpp>
3 
4 namespace samchon
5 {
6 namespace library
7 {
8  class RWMutex;
9 
39  class SAMCHON_FRAMEWORK_API UniqueReadLock
40  {
41  private:
45  const RWMutex *mtx;
46 
50  bool isLocked;
51 
52  public:
53  /* -----------------------------------------------------------
54  CONSTRUCTORS
55  ----------------------------------------------------------- */
62  UniqueReadLock(const RWMutex &, bool = true);
63 
74  UniqueReadLock(const UniqueReadLock &) = delete;
75 
82 
87  ~UniqueReadLock();
88 
89  /* -----------------------------------------------------------
90  LOCKERS
91  ----------------------------------------------------------- */
95  void lock() const;
96 
100  void unlock() const;
101 
105  //auto tryLock() const -> bool;
106  };
107 };
108 };
Unique lock for reading.
bool isLocked
Whether the mutex was locked by UniqueLock.
const RWMutex * mtx
Managed mutex.
Top level namespace of products built from samchon.
Definition: ByteArray.hpp:7