25 std::shared_ptr<InputFile> filePtr,
31 inputType_(inputType),
32 wrapperBaseTClass_(TClass::GetClass(
"edm::WrapperBase")) {
43 std::pair<SharedResourcesAcquirer*, std::recursive_mutex*>
48 std::unique_ptr<WrapperBase>
58 return std::unique_ptr<WrapperBase>();
61 TBranch*
br = branchInfo->productBranch_;
66 return std::unique_ptr<WrapperBase>();
72 std::shared_ptr<void> refCoreStreamerGuard(
nullptr,[](
void*){
setRefCoreStreamer(
false);
74 TClass*
cp = branchInfo->classCache_;
76 branchInfo->classCache_ = TClass::GetClass(branchInfo->branchDescription_.wrappedName().c_str());
77 cp = branchInfo->classCache_;
81 std::unique_ptr<WrapperBase> edp =
getWrapperBasePtr(p, branchInfo->offsetToWrapperBase_);
87 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()