34 char const* principalType,
36 std::string
const& productInstanceName) {
39 <<
"::put: A null auto_ptr was passed to 'put'.\n"
40 <<
"The pointer is of type "
42 <<
".\nThe specified productInstanceName was '"
43 << productInstanceName
49 return principal_.branchType();
54 return principal_.getBySelector(tid, sel);
61 principal_.getMany(tid, sel, results);
66 std::string
const&
label,
67 std::string
const& productInstanceName,
68 std::string
const& processName)
const {
69 size_t cachedOffset = 0;
71 return principal_.getByLabel(tid, label, productInstanceName, processName, cachedOffset, fillCount);
78 principal_.maybeFlushCache(tid, tag);
84 return principal_.getByType(tid);
90 principal_.getManyByType(tid, results);
97 return principal_.getMatchingSequence(typeID,
104 std::string
const&
label,
105 std::string
const& productInstanceName,
110 int n = principal_.getMatchingSequence(typeID,
118 std::string
const&
label,
119 std::string
const& productInstanceName,
120 std::string
const& processName,
126 int n = principal_.getMatchingSequence(typeID,
134 return principal_.processHistory();
139 std::string
const& productInstanceName)
const {
141 std::pair<TransientProductLookupMap::const_iterator, TransientProductLookupMap::const_iterator> range =
148 bool foundMatch =
false;
149 if(range.first != range.second) {
151 while(md_.processName() != range.first->branchDescription()->processName()) {
153 if(range.first == range.second || range.first->isFirst()) {
161 <<
"Illegal attempt to 'put' an unregistered product.\n"
162 <<
"No product is registered for\n"
163 <<
" process name: '" << md_.processName() <<
"'\n"
164 <<
" module label: '" << md_.moduleLabel() <<
"'\n"
166 <<
" product instance name: '" << productInstanceName <<
"'\n"
168 <<
"The ProductRegistry contains:\n"
169 << principal_.productRegistry()
172 return *(range.first->branchDescription());
177 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 operator()(std::pair< WrapperOwningHolder, ConstBranchDescription const * > const p) 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
std::vector< BasicHandle > BasicHandleVec
std::string friendlyClassName() const