36 template <
class N,
class I,
class K = I>
45 using iterator =
typename registry_type::iterator;
73 std::map<name_type, prep_type>
reg_;
77 template <
class N,
class I,
class K>
84 <<
" Store has been locked. Illegal attempt to add " <<
n <<
" to a global store.";
88 return result.first->second;
91 template <
class N,
class I,
class K>
95 <<
" Store has been locked. Illegal attempt to add " <<
n <<
" to a global store.";
100 result.first->second->second.swap(
p);
104 return result.first->second;
107 template <
typename I>
112 template <
typename I>
120 template <
class N,
class I,
class K>
122 for (
auto it : reg_) {
129 template <
class N,
class I,
class K>
133 <<
" Store is locked and most likely empty. isDefined will be false.";
134 auto it = reg_.find(
n);
136 if (
it != reg_.end()) {
137 if (
it.second->second) {
144 template <
class N,
class I,
class K>
146 reg_.swap(storeToSwap.
reg_);
std::map< name_type, prep_type > registry_type
std::map< name_type, prep_type > reg_
bool isDefined(const name_type &n) const
static void cleanup(I *ptr)
DDName is used to identify DDD entities uniquely.
prep_type create(const name_type &)
typename registry_type::iterator iterator
static void cleanup(I &&ptr)
std::unique_ptr< DDI::Material > key_type
const std::complex< double > I
std::unique_ptr< DDI::Material > pimpl_type
Store & operator=(const Store &)=delete
Log< level::Warning, false > LogWarning