7#include "group_ptr.hpp"
8#include "../coroutine/module.hpp"
9#include "../macros.hpp"
21 void const *
const ptr;
43 [[nodiscard]]
virtual void const *
read() const noexcept = 0;
51 [[nodiscard]] virtual
void *copy(
void const *ptr) const noexcept = 0;
58 virtual
void commit(
void *ptr) noexcept = 0;
65 virtual
void abort(
void *ptr) const noexcept = 0;
69 virtual
void read_lock() const noexcept = 0;
73 virtual
void read_unlock() const noexcept = 0;
77 virtual
void write_lock() const noexcept = 0;
81 virtual
void write_unlock() const noexcept = 0;
DOXYGEN BUG.
Definition algorithm.hpp:16
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:377
Enable a class to be used in a group_ptr.
Definition group_ptr.hpp:37
Definition observable.hpp:16
An abstract observable object.
Definition observable.hpp:29
virtual void const * read() const noexcept=0
Get a pointer to the current value.