29 inputType_(inputType),
30 wrapperBaseTClass_(TClass::GetClass(
"edm::WrapperBase")) {
53 return std::unique_ptr<WrapperBase>();
56 TBranch*
br = branchInfo->productBranch_;
61 return std::unique_ptr<WrapperBase>();
67 std::shared_ptr<void> refCoreStreamerGuard(
nullptr, [](
void*) {
71 TClass*
cp = branchInfo->classCache_;
73 branchInfo->classCache_ = TClass::GetClass(branchInfo->branchDescription_.wrappedName().c_str());
74 cp = branchInfo->classCache_;
78 std::unique_ptr<WrapperBase> edp =
getWrapperBasePtr(p, branchInfo->offsetToWrapperBase_);
84 exception.
addContext(
"Rethrowing an exception that happened on a different thread.");
BranchInfo const * getBranchInfo(BranchID const &k) const
void setRefCoreStreamer(bool resetAll=false)
std::shared_ptr< std::recursive_mutex > mutex_
std::pair< SharedResourcesAcquirer *, std::recursive_mutex * > sharedResources_() const override
std::exception_ptr lastException_
static SharedResourcesRegistry * instance()
~RootDelayedReader() override
BranchType branchType() const
RootDelayedReader(RootTree const &tree, std::shared_ptr< InputFile > filePtr, InputType inputType)
EntryNumber const & entryNumberForIndex(unsigned int index) const
void getEntry(TBranch *branch, EntryNumber entry) const
std::unique_ptr< WrapperBase > getProduct_(BranchID const &k, EDProductGetter const *ep) override
void addContext(std::string const &context)
unsigned int transitionIndex() const
std::unique_ptr< SharedResourcesAcquirer > resourceAcquirer_
edm::propagate_const< TClass * > wrapperBaseTClass_
std::unique_ptr< WrapperBase > getWrapperBasePtr(void *p, int offset)
edm::propagate_const< DelayedReader * > nextReader_
std::pair< SharedResourcesAcquirer, std::shared_ptr< std::recursive_mutex > > createAcquirerForSourceDelayedReader()