66 std::set<std::string>
const&
aliases) :
67 branchType_(branchType),
69 processName_(processName),
71 fullClassName_(className),
72 friendlyClassName_(friendlyClassName),
73 productInstanceName_(productInstanceName),
74 branchAliases_(aliases),
91 processName_(aliasForBranch.processName()),
93 fullClassName_(aliasForBranch.
className()),
94 friendlyClassName_(aliasForBranch.friendlyClassName()),
95 productInstanceName_(productInstanceAlias),
96 branchAliases_(aliasForBranch.branchAliases()),
97 aliasForBranchID_(aliasForBranch.branchID()),
115 char const underscore(
'_');
116 char const period(
'.');
120 <<
"' contains an underscore ('_'), which is illegal in the name of a product.\n";
123 if(
moduleLabel_.find(underscore) != std::string::npos) {
125 <<
"' contains an underscore ('_'), which is illegal in a module label.\n";
130 <<
"' contains an underscore ('_'), which is illegal in a product instance name.\n";
133 if(
processName_.find(underscore) != std::string::npos) {
135 <<
"' contains an underscore ('_'), which is illegal in a process name.\n";
144 brName += underscore;
146 brName += underscore;
148 brName += underscore;
184 Reflex::PropertyList wp = Reflex::Type::ByTypeInfo(
wrappedType().typeInfo()).Properties();
185 setTransient((wp.HasProperty(
"persistent") ? wp.PropertyAsString(
"persistent") ==
std::string(
"false") :
false));
191 if(wp.HasProperty(
"splitLevel")) {
192 setSplitLevel(strtol(wp.PropertyAsString(
"splitLevel").c_str(), 0, 0));
194 throw cms::Exception(
"IllegalSplitLevel") <<
"' An illegal ROOT split level of " <<
201 if(wp.HasProperty(
"basketSize")) {
202 setBasketSize(strtol(wp.PropertyAsString(
"basketSize").c_str(), 0, 0));
204 throw cms::Exception(
"IllegalBasketSize") <<
"' An illegal ROOT basket size of " <<
221 os <<
"Branch Type = " <<
branchType() << std::endl;
222 os <<
"Process Name = " <<
processName() << std::endl;
223 os <<
"ModuleLabel = " <<
moduleLabel() << std::endl;
224 os <<
"Branch ID = " <<
branchID() <<
'\n';
232 e <<
"Problem using an incomplete BranchDescription\n"
234 <<
"\nPlease report this error to the FWCore developers";
311 std::ostringstream differences;
313 differences <<
"Branch name '" << b.
branchName() <<
"' does not match '" << a.
branchName() <<
"'.\n";
322 differences <<
" in file '" << fileName <<
"', but a(n) '" << a.
branchType() <<
"' branch in previous files.\n";
325 differences <<
"Branch '" << b.
branchName() <<
"' has a branch ID of '" << b.
branchID() <<
"'\n";
326 differences <<
" in file '" << fileName <<
"', but '" << a.
branchID() <<
"' in previous files.\n";
330 differences <<
" in file '" << fileName <<
"', but '" << a.
fullClassName() <<
"' in previous files.\n";
333 differences <<
"Branch '" << a.
branchName() <<
"' was dropped in the first input file but is present in '" << fileName <<
"'.\n";
335 return differences.str();
338 WrapperInterfaceBase
const*
bool operator<(DetSet< T > const &x, DetSet< T > const &y)
std::string const & branchName() const
BranchType const & branchType() const
static TypeWithDict byName(std::string const &className)
static int const invalidSplitLevel
static int const invalidBasketSize
void setOnDemand(bool isOnDemand)
std::string const & processName() const
void invokeByName(T &obj, std::string const &name) const
void write(std::ostream &os) const
void setWrappedType(TypeWithDict const &type)
void setTransient(bool isTransient)
std::string moduleName(Provenance const &provenance)
BranchID aliasForBranchID_
void throwIfInvalid_() const
std::string friendlyName(std::string const &iFullName)
std::string const & moduleLabel() const
std::string const & productInstanceName() const
bool combinable(BranchDescription const &a, BranchDescription const &b)
std::string fullClassName_
void initFromDictionary()
WrapperInterfaceBase * wrapperInterfaceBase_
bool operator==(debugging_allocator< X > const &, debugging_allocator< Y > const &)
void setWrappedName(std::string const &name)
void setSplitLevel(int level)
std::string productInstanceName_
std::string const & friendlyClassName() const
BranchID const & branchID() const
WrapperInterfaceBase const * getInterface() const
TypeWithDict const & unwrappedType() const
void setDropped(bool isDropped)
void updateFriendlyClassName()
std::string const & moduleName() const
void throwExceptionWithText(char const *txt)
std::string const & fullClassName() const
ParameterSetID const & parameterSetID() const
eventsetup::produce::Produce produced
std::string wrappedClassName(std::string const &iFullName)
std::set< std::string > const & branchAliases() const
std::set< std::string > branchAliases_
std::string friendlyClassName_
WrapperInterfaceBase *& wrapperInterfaceBase()
ParameterSetID parameterSetID_
void setUnwrappedType(TypeWithDict const &type)
volatile std::atomic< bool > shutdown_flag false
void setBasketSize(int size)
void setProduced(bool isProduced)
std::string const & wrappedName() const
tuple size
Write out results.
std::string className(const T &t)
TypeWithDict const & wrappedType() const
void setID(std::string const &branchName)
std::string match(BranchDescription const &a, BranchDescription const &b, std::string const &fileName)
void merge(BranchDescription const &other)