A descriptor for a buffer in which references can point. More...
Public Member Functions | |
Referenced_buffer (std::function< void()> deleter, bool readable, bool writable) noexcept | |
Constructs a new buffer descriptor. More... | |
Referenced_buffer ()=delete | |
Referenced_buffer (const Referenced_buffer &)=delete | |
Referenced_buffer (Referenced_buffer &&)=delete | |
~Referenced_buffer () | |
Public Attributes | |
std::function< void()> | m_delete |
The function to call to deallocate the buffer memory. More... | |
int | m_owners |
Number of references to this buffer. More... | |
int | m_read_locks |
Number of locks preventing read access. More... | |
int | m_write_locks |
Number of locks preventing write access. More... | |
std::unordered_map< const Reference_base *, std::function< void(Ref)> > | m_notifications |
Nullification notifications registered on this instance. More... | |
A descriptor for a buffer in which references can point.
Both locking and memory management happen at this granularity.
|
inlinenoexcept |
Constructs a new buffer descriptor.
deleter | the function to use to deallocate the buffer memory |
readable | whether it is allowed to read the content |
writable | whether it is allowed to write the content |
|
delete |
|
delete |
|
delete |
|
inline |
std::function<void()> PDI::Reference_base::Referenced_buffer::m_delete |
The function to call to deallocate the buffer memory.
int PDI::Reference_base::Referenced_buffer::m_owners |
Number of references to this buffer.
int PDI::Reference_base::Referenced_buffer::m_read_locks |
Number of locks preventing read access.
int PDI::Reference_base::Referenced_buffer::m_write_locks |
Number of locks preventing write access.
this should always remain between 0 & 2 inclusive w. current implem.
std::unordered_map<const Reference_base*, std::function<void(Ref)> > PDI::Reference_base::Referenced_buffer::m_notifications |
Nullification notifications registered on this instance.