24 TypeLabelList::const_iterator
const& iEnd,
29 for(TypeLabelList::const_iterator
p = iBegin;
p != iEnd; ++
p) {
31 TClass::GetClass(
p->typeID_.typeInfo());
38 <<
"No data dictionary found for class:\n\n"
39 <<
p->typeID_.className()
40 <<
"\nMost likely the dictionary was never generated,\n"
41 <<
"but it may be that it was generated in the wrong package.\n"
42 <<
"Please add (or move) the specification\n"
43 <<
"<class name=\"whatever\"/>\n"
44 <<
"to the appropriate classes_def.xml file.\n"
45 <<
"If the class is a template instance, you may need\n"
46 <<
"to define a dummy variable of this type in classes.h.\n"
47 <<
"Also, if this class has any transient members,\n"
48 <<
"you need to specify them in classes_def.xml.";
55 p->typeID_.userClassName(),
56 p->typeID_.friendlyClassName(),
57 p->productInstanceName_,
61 if(pdesc.transient()) {
67 if (!
p->branchAlias_.empty()) pdesc.insertBranchAlias(
p->branchAlias_);
std::list< TypeLabelItem > TypeLabelList
std::string const & processName() const
TypeLabelList typeLabelList_
std::string const & moduleName() const
std::string const & moduleLabel() const
static TypeWithDict byName(std::string const &name)
TypeLabelList & typeLabelList()
used by the fwk to register the list of products of this module
std::set< TypeID > TypeSet
void checkClassDictionaries(TypeID const &type, TypeSet &missingTypes, bool recursive=true)
ParameterSetID const & parameterSetID() const
bool hasDictionary(std::type_info const &)
static void addToRegistry(TypeLabelList::const_iterator const &iBegin, TypeLabelList::const_iterator const &iEnd, ModuleDescription const &iDesc, ProductRegistry &iReg, bool iIsListener=false)
void loadMissingDictionaries(TypeSet missingTypes)
void addProduct(BranchDescription const &productdesc, bool iFromListener=false)