14#ifndef SIMICS_SYSTEMC_REGISTRY_H
15#define SIMICS_SYSTEMC_REGISTRY_H
17#include <simics/util/help-macros.h>
33 for (
auto *item :
items_) {
35 FATAL_ERROR_IF(!r,
"Registry: unexpected non-Registrant stored");
43 typename Iterators::iterator i =
iterators_.find(impl);
52 typename Items::iterator i =
items_.begin();
74 typedef std::map<T *, typename Items::iterator>
Iterators;
Definition: registry.h:86
Registrant()
Definition: registry.h:88
virtual ~Registrant()
Definition: registry.h:92
Registrant(const Registrant &rhs)
Definition: registry.h:96
void detach()
Definition: registry.h:99
Definition: registry.h:30
std::map< T *, typename Items::iterator > Iterators
Definition: registry.h:74
std::list< T * > Items
Definition: registry.h:73
Iterators iterators_
Definition: registry.h:77
void add(T *impl)
Definition: registry.h:39
void remove(T *impl)
Definition: registry.h:42
bool iterate(F *f)
Definition: registry.h:51
static Registry< T > * instance()
Definition: registry.h:67
bool reverseIterate(F *f)
Definition: registry.h:60
~Registry()
Definition: registry.h:32
Items items_
Definition: registry.h:76