33 char const* principalType,
35 std::string
const& productInstanceName) {
38 <<
"::put: A null auto_ptr was passed to 'put'.\n"
39 <<
"The pointer is of type "
41 <<
".\nThe specified productInstanceName was '"
42 << productInstanceName
48 return principal_.branchType();
53 return principal_.getBySelector(tid, sel);
60 principal_.getMany(tid, sel, results);
65 std::string
const&
label,
66 std::string
const& productInstanceName,
67 std::string
const& processName)
const {
68 size_t cachedOffset = 0;
70 return principal_.getByLabel(tid, label, productInstanceName, processName, cachedOffset, fillCount);
77 principal_.maybeFlushCache(tid, tag);
83 return principal_.getByType(tid);
89 principal_.getManyByType(tid, results);
96 return principal_.getMatchingSequence(typeID,
103 std::string
const&
label,
104 std::string
const& productInstanceName,
109 int n = principal_.getMatchingSequence(typeID,
117 std::string
const&
label,
118 std::string
const& productInstanceName,
119 std::string
const& processName,
125 int n = principal_.getMatchingSequence(typeID,
133 return principal_.processHistory();
138 std::string
const& productInstanceName)
const {
140 std::pair<TransientProductLookupMap::const_iterator, TransientProductLookupMap::const_iterator> range =
147 bool foundMatch =
false;
148 if(range.first != range.second) {
150 while(md_.processName() != range.first->branchDescription()->processName()) {
152 if(range.first == range.second || range.first->isFirst()) {
160 <<
"Illegal attempt to 'put' an unregistered product.\n"
161 <<
"No product is registered for\n"
162 <<
" process name: '" << md_.processName() <<
"'\n"
163 <<
" module label: '" << md_.moduleLabel() <<
"'\n"
165 <<
" product instance name: '" << productInstanceName <<
"'\n"
167 <<
"The ProductRegistry contains:\n"
168 << principal_.productRegistry()
171 return *(range.first->branchDescription());
176 return principal_.prodGetter();
ProcessHistory const & processHistory() const
BasicHandle getByType_(TypeID const &tid) const
void getManyByType_(TypeID const &tid, BasicHandleVec &results) const
PrincipalGetAdapter(Principal &pcpl, ModuleDescription const &md)
int getMatchingSequence_(TypeID const &typeID, SelectorBase const &selector, BasicHandle &result) const
int getMatchingSequenceByLabel_(TypeID const &typeID, std::string const &label, std::string const &productInstanceName, BasicHandle &result) const
BranchType const & branchType() const
EDProductGetter const * prodGetter() const
void getMany_(TypeID const &tid, SelectorBase const &sel, BasicHandleVec &results) const
std::pair< const_iterator, const_iterator > equal_range(TypeInBranchType const &) const
returns a pair of iterators that define the range for items matching the TypeInBranchType ...
BasicHandle getByLabel_(TypeID const &tid, std::string const &label, std::string const &productInstanceName, std::string const &processName) const
BasicHandle get_(TypeID const &tid, SelectorBase const &) const
void throwOnPutOfNullProduct(char const *principalType, TypeID const &productType, std::string const &productInstanceName)
ConstBranchDescription const & getBranchDescription(TypeID const &type, std::string const &productInstanceName) const
void operator()(std::pair< EDProduct *, ConstBranchDescription const * > const p) const
std::vector< BasicHandle > BasicHandleVec
std::string friendlyClassName() const