36 template <
class N,
class I,
class K=I>
46 typedef typename registry_type::iterator
iterator;
53 prep_type
create(
const name_type &);
56 prep_type
create(
const name_type &, pimpl_type);
72 std::map<name_type,prep_type>
reg_;
78 template<
class N,
class I,
class K>
83 auto result =
reg_.insert(std::make_pair(n,tmp));
85 if (
readOnly_)
throw cms::Exception(
"DetectorDescriptionStore")<<
" Store has been locked. Illegal attempt to add " << n <<
" to a global store.";
89 return result.first->second;
92 template<
class N,
class I,
class K>
97 if (
readOnly_)
throw cms::Exception(
"DetectorDescriptionStore")<<
" Store has been locked. Illegal attempt to add " << n <<
" to a global store.";
100 auto result =
reg_.insert(std::make_pair(n,tmp));
102 delete result.first->second->second;
103 result.first->second->second =
p;
108 return result.first->second;
111 template<
class N,
class I,
class K>
114 for(
auto it :
reg_ ) {
115 delete it.second->second;
116 it.second->second = 0;
122 template<
class N,
class I,
class K>
125 if (
readOnly_)
edm::LogWarning(
"DetectorDescriptionStore") <<
" Store is locked and most likely empty. isDefined will be false.";
126 auto it =
reg_.find(n);
128 if (it !=
reg_.end()) {
129 if (it.second->second) {
136 template<
class N,
class I,
class K>
Store & operator=(const Store &)
registry_type::iterator iterator
prep_type create(const name_type &)
std::map< name_type, prep_type > registry_type
rep_type< name_type, pimpl_type > Rep_type
std::map< name_type, prep_type > reg_
const std::complex< double > I
std::vector< std::vector< double > > tmp
bool isDefined(const name_type &n) const