14 #include "utils/logger.hpp"
31 template <
typename Storage>
71 template <
typename Storage>
83 other.m_data_ptr =
nullptr;
93 other.m_data_ptr =
nullptr;
160 bool terminate =
false;
164 }
catch (std::exception
const& e) {
173 "neuron::container::owning_identifier<{}> destructor could not delete from "
174 "the underlying storage: {} [{}]. This is not recoverable, aborting.\n",
197 template <
typename,
typename...>
int cxx_demangle(const char *symbol, char **funcname, size_t *funcname_sz)
void move(Item *q1, Item *q2, Item *q3)
void notify_handle_dying(non_owning_identifier_without_container p)
Respond to the news that data_handles relying on p are now dead.
constexpr std::size_t invalid_row
A non-owning permutation-stable identifier for an entry in a container.
void set_current_row(std::size_t row)
std::size_t current_row() const
What is the current row?
A non-owning permutation-stable identifier for a entry in a container.
non_owning_identifier(Storage *storage, non_owning_identifier_without_container id)
Storage const & underlying_storage() const
Return a const reference to the container in which this entry lives.
Storage & underlying_storage()
Return a reference to the container in which this entry lives.
An owning permutation-stable identifier for a entry in a container.
std::size_t current_row() const
What is the current row?
owning_identifier(const owning_identifier &)=delete
owning_identifier & operator=(owning_identifier &&other)
owning_identifier & operator=(const owning_identifier &)=delete
friend std::ostream & operator<<(std::ostream &os, owning_identifier const &oi)
non_owning_identifier_without_container m_ptr
Storage const & underlying_storage() const
Return a const reference to the container in which this entry lives.
Storage & underlying_storage()
Return a reference to the container in which this entry lives.
owning_identifier(Storage &storage, std::size_t row)
Create a non-null owning identifier that owns the given row.
owning_identifier()=default
owning_identifier(owning_identifier &&other) noexcept
void set_current_row(std::size_t new_row)
owning_identifier(Storage &storage)
Create a non-null owning identifier by creating a new entry.
int Fprintf(FILE *stream, const char *fmt, Args... args)