9#ifndef ROOT_RDF_DETAIL_RACTIONIMPL 
   10#define ROOT_RDF_DETAIL_RACTIONIMPL 
   22class RMergeableValueBase;
 
   25template <
typename Helper>
 
   30   template <
typename T = Helper>
 
   31   auto CallFinalizeTask(
unsigned int slot) -> 
decltype(std::declval<T>().FinalizeTask(slot))
 
   33      static_cast<Helper *
>(
this)->FinalizeTask(slot);
 
   36   template <
typename... Args>
 
   39   template <
typename H = Helper>
 
   40   auto CallPartialUpdate(
unsigned int slot) -> 
decltype(std::declval<H>().PartialUpdate(slot), (
void *)(
nullptr))
 
   42      return &
static_cast<Helper *
>(
this)->PartialUpdate(slot);
 
   45   template <
typename... Args>
 
   48      throw std::logic_error(
"This action does not support callbacks!");
 
   51   template <
typename T = Helper>
 
   52   auto CallMakeNew(
void *typeErasedResSharedPtr) -> 
decltype(std::declval<T>().MakeNew(typeErasedResSharedPtr))
 
   54      return static_cast<Helper *
>(
this)->MakeNew(typeErasedResSharedPtr);
 
   57   template <
typename... Args>
 
   60      const auto &actionName = 
static_cast<Helper *
>(
this)->GetActionName();
 
   61      throw std::logic_error(
"The MakeNew method is not implemented for this action helper (" + actionName +
 
   62                             "). Cannot Vary its result.");
 
   68      throw std::logic_error(
"`GetMergeableValue` is not implemented for this type of action.");
 
Base class for action helpers, see RInterface::Book() for more information.
 
Helper CallMakeNew(void *, Args...)
 
auto CallFinalizeTask(unsigned int slot) -> decltype(std::declval< T >().FinalizeTask(slot))
 
virtual ~RActionImpl()=default
 
auto CallMakeNew(void *typeErasedResSharedPtr) -> decltype(std::declval< T >().MakeNew(typeErasedResSharedPtr))
 
void * CallPartialUpdate(...)
 
virtual ROOT::RDF::SampleCallback_t GetSampleCallback()
Override this method to register a callback that is executed before the processing a new data sample ...
 
auto CallPartialUpdate(unsigned int slot) -> decltype(std::declval< H >().PartialUpdate(slot),(void *)(nullptr))
 
virtual std::unique_ptr< RMergeableValueBase > GetMergeableValue() const
 
void CallFinalizeTask(unsigned int, Args...)
 
std::function< void(unsigned int, const ROOT::RDF::RSampleInfo &)> SampleCallback_t
The type of a data-block callback, registered with a RDataFrame computation graph via e....
 
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.