34#include <NDEVR/BaseValues.h>
35#include <NDEVR/Dictionary.h>
75 std::mutex m_critical_section;
76 volatile uint04 m_write_owner;
79 volatile uint04 m_write_waiters;
93 explicit RLock(
const void* lock);
100 RLock(
const void* lock,
bool& didAquire);
A hash-based key-value store, useful for quick associative lookups. Key features include:
Definition Dictionary.h:61
Used to lock a particular variable for reading. Any number of readers can be created when no write lo...
Definition RWLock.h:91
static bool HasLock(const RWLock &lock)
RLock(RLock &&lock) noexcept
RLock(const void *lock, bool &didAquire)
RLock(const RLock &)=delete
static bool HasLock(const void *lock)
RLock(const void *lock, uint08 timeout)
void operator=(const RLock &)=delete
Maintains a pair of associated locks, one for read-only operations and one for writing....
Definition RWLock.h:47
static RWLock * getEntry(const void *entry)
RWLock(const RWLock &lock)=delete
uint04 numOfReadLocksHeld() const
uint04 numOfWriteLocks() const
uint04 numOfWriteLocksHeld() const
uint04 numOfReadLocks() const
bool TryWriteLock(uint08 time)
bool TryReadLock(uint08 time)
Stores a time span, or difference between two times, with an optional start time.
Definition TimeSpan.h:46
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:60
Used to lock a particular variable for writing. Only one write lock can be created when no read locks...
Definition RWLock.h:115
WLock(const WLock &)=delete
void operator=(const WLock &)=delete
WLock(const void *lock, const TimeSpan &timeout)
static bool HasLock(const RWLock &lock)
WLock(const void *lock, uint08 timeout)
WLock(WLock &&lock) noexcept
static bool HasLock(const void *lock)
uint64_t uint08
-Defines an alias representing an 8 byte, unsigned integer
Definition BaseValues.hpp:106
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:96