6 #include <ext/alloc_traits.h> 12 os <<
n.ns() <<
':' <<
n.name();
20 if (
result.second.empty()) {
29 if (
result.second.empty()) {
64 std::once_flag s_once;
68 std::call_once(s_once, []() {
72 idToName.emplace_back(reg.begin());
76 Registry::const_iterator itFound = reg.find(nm);
77 if (itFound == reg.end()) {
82 auto it = idToName.emplace_back(reg.end());
83 *
it = reg.emplace(nm,
it - idToName.begin()).
first;
std::ostream & operator<<(std::ostream &os, const DDName &n)
tbb::concurrent_unordered_map< key_type, id_type, edm::StdPairHasher > Registry
DDName is used to identify DDD entities uniquely.
static std::string & ns()
U second(std::pair< T, U > const &p)
static value_type & instance()
const std::string & name() const
Returns the name.
static Registry::const_iterator registerName(const std::pair< std::string, std::string > &s)
tbb::concurrent_vector< Registry::const_iterator > IdToName
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
const std::string & ns() const
Returns the namespace.