11#ifndef ROOT_RDF_RRESULTHANDLE
12#define ROOT_RDF_RRESULTHANDLE
37 std::shared_ptr<ROOT::Internal::RDF::RActionBase>
fActionPtr;
42 const std::type_info *
fType =
nullptr;
45 friend unsigned int RunGraphs(std::vector<RResultHandle>);
65 throw std::runtime_error(ss.str());
72 throw std::runtime_error(
"Trying to access the contents of a null RResultHandle.");
82 fObjPtr(resultMap.fMap.at(
"nominal")),
101 return static_cast<T*
>(
Get());
113 return *
static_cast<T*
>(
Get());
The head node of a RDF computation graph.
bool operator!=(const RResultHandle &rhs) const
T * GetPtr()
Get the pointer to the encapsulated object.
std::shared_ptr< void > fObjPtr
Type erased shared pointer encapsulating the wrapped result.
ROOT::Detail::RDF::RLoopManager * fLoopManager
void * Get()
Get the pointer to the encapsulated result.
bool IsReady() const
Check whether the result has already been computed.
std::shared_ptr< ROOT::Internal::RDF::RActionBase > fActionPtr
Owning pointer to the action that will produce this result.
void CheckType(const std::type_info &type)
Compare given type to the type of the wrapped result and throw if the types don't match.
RResultHandle(const RResultPtr< T > &resultPtr)
RResultHandle(const Experimental::RResultMap< T > &resultMap)
friend unsigned int RunGraphs(std::vector< RResultHandle >)
Run the event loops of multiple RDataFrames concurrently.
RResultHandle(const RResultHandle &)=default
std::shared_ptr< ROOT::Internal::RDF::RActionBase > fVariedActionPtr
Owning pointer to the varied action that will produce these results if any.
const T & GetValue()
Get a const reference to the encapsulated object.
RResultHandle(RResultHandle &&)=default
const std::type_info * fType
Type of the wrapped result.
bool operator==(const RResultHandle &rhs) const
Smart pointer for the return type of actions.
std::string TypeID2TypeName(const std::type_info &id)
Returns the name of a type starting from its type_info An empty string is returned in case of failure...