1 #ifndef CondCoreDBCommon_ClassID_H
2 #define CondCoreDBCommon_ClassID_H
9 namespace idCategories {
16 char const *
className(
const std::type_info&
t);
24 inline ClassInfo(
const std::type_info&
t,
int);
25 inline const std::type_info&
type()
const {
return tinfo;}
27 virtual std::string
resource()
const=0;
38 std::vector<std::string>
sids;
63 #define ELEM_CONSTR(xx_) \
64 cond::ClassInfo::ClassInfo(const std::type_info& t,int) : tinfo(t) {registry = &xx_;registerMe(t);}
72 #define CLASS_ID(type_) \
73 namespace{ cond::ClassID<type_> EDM_PLUGIN_SYM(instance_cld, __LINE__)(0); } \
74 DEFINE_EDM_PLUGIN(cond::ClassInfoFactory, cond::ClassID<type_> , cond::ClassID<type_>().pluginName(cond::idCategories::dictIDCategory).c_str() )
76 #define PYTHON_ID(type_, plugName_, uname_) \
77 namespace pythonID { struct EDM_PLUGIN_SYM(plugName_, uname_) : public cond::ClassID<type_> { EDM_PLUGIN_SYM(plugName_ , uname_) () : cond::ClassID<type_>(::plugName_){}};} \
78 DEFINE_EDM_PLUGIN(cond::ClassInfoFactory, EDM_PLUGIN_SYM(pythonID::plugName_, uname_) , EDM_PLUGIN_SYM(pythonID::plugName_, uname_)().pluginName(cond::idCategories::pythonIDCategory).c_str() )
81 #endif // CondCoreDBCommon_ClassID_H
std::string const pythonIDCategory("CondPythonID")
std::string const dictIDCategory("LCGDictID")
const std::type_info & tinfo
std::vector< std::string > sids
virtual std::string resource() const
ClassInfo(const std::type_info &t)
const std::type_info & type() const
const char * registerMe(const std::type_info &t)
ClassIDRegistry(std::string const &pfix)
std::vector< const char * > csids
virtual std::string resource() const =0
ClassIDRegistry * registry
const char * registerMe(const std::type_info &t)
edmplugin::PluginFactory< ClassInfo *() > ClassInfoFactory
std::string pluginName(std::string const &prefix) const
char const * className(const std::type_info &t)