12 #ifndef ROOT_PoolUtils 13 #define ROOT_PoolUtils 56 namespace ExecutorUtils {
66 static_assert(std::is_constructible<TObject *, T>::value,
67 "The argument should be a vector of pointers to TObject or derived classes");
79 Error(
"PoolUtils::ReduceObjects",
"could not find merge method for the TObject\n. Aborting operation.");
85 unsigned NObjs = objs.size();
86 for(
unsigned i=1; i<NObjs; ++i)
87 mergelist.
Add(objs[i]);
90 merge(obj, &mergelist,
nullptr);
105 namespace ExecutorUtils {
108 template <
class O,
class F>
121 return static_cast<F>(obj);
126 namespace PoolUtils = ExecutorUtils;
The message contains the result of a function execution.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
Tell a TPoolProcessor to process the tree that was passed to it at construction time.
Tell the client we are done processing (i.e. we have reached the target number of entries to process)...
Tell a TPoolProcessor which tree and entries range to process. The object sent is a TreeRangeInfo...
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
Long64_t(* MergeFunc_t)(void *, TCollection *, TFileMergeInfo *)
EPoolCode
An enumeration of the message codes handled by TPool, TPoolWorker and TPoolProcessor.
Tell a TPoolProcessor which tree to process. The object sent is a TreeInfo.
T operator()(const std::vector< T > &objs)
We are ready for the next task.
Merge collection of TObjects.
void Error(const char *location, const char *msgfmt,...)
static std::enable_if< std::is_pointer< F >::value, F >::type CastIfNeeded(TObject *obj)
static O CastIfNeeded(O &&obj)
Execute function with the argument contained in the message.
The message contains the result of the processing of a TTree.
Execute function without arguments.
Tell the client there was an error while processing.
Ask for a kFuncResult/kProcResult.
Mother of all ROOT objects.
virtual void Add(TObject *obj)
Tell a TPoolProcessor to process the tree using the selector passed to it at construction time...