15 #include "tbb/concurrent_unordered_map.h" 30 bool operator()(
const char* iLHS,
const char* iRHS)
const {
return (std::strcmp(iLHS, iRHS) == 0); }
37 template <
unsigned u,
unsigned long long ull>
38 struct select_size_t_constant {
41 static constexpr size_t value = (size_t)((
sizeof(
size_t) ==
sizeof(u)) ? u : ull);
47 inline size_t operator()(
const char*
s)
const {
49 for (
const char*
c = s; *
c; ++
c)
50 h = static_cast<size_t>(*
c) ^ (h * hash_multiplier);
57 using TypeNameToValueMap = tbb::concurrent_unordered_map<const char*, const std::type_info*, StringHash, StringEqual>;
59 TypeNameToValueMap& typeNameToValueMap() {
60 static TypeNameToValueMap s_map;
66 typeNameToValueMap().insert(std::pair<const char*, const std::type_info*>(iTypeName, &iInfo));
70 auto itFind = typeNameToValueMap().find(iTypeName);
72 if (itFind == typeNameToValueMap().
end()) {
73 return std::make_pair(static_cast<const char*>(
nullptr), static_cast<std::type_info*>(
nullptr));
std::pair< const char *, const std::type_info * > findType(const char *iClassName)
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
NameRegistrar(const char *iTypeName, const std::type_info &iInfo)