[TDF] Support caching of columns which are C arrays
an array of type T* is stored in the returned column as vector<T>: the ownership has to be transferred to the "extracted column". To implement this feature, these changes were applied: - The Take action has been restructured in order to detect the presence of the array_view<T> type as column type. The changes are mainly confined to transformation of types at compile times. - The TakeHelper template and its specialisations have been modified. Now we not only take into account the case of returned collection equal to to vector for optimisation, but also the case where the column in the dataset is a C style array. The specialisations of the TakeHelper template are now 4. In addition, a bug was fixed: the Exec function was accepting the value of the column for a certain entry as a value, therewith potentially triggering expensive copies. - Some static utilities have been added in the ROOT::Internal::TDF namespace to factor out verbose operations linked to the points mentioned above.
Showing
- tree/treeplayer/inc/ROOT/TDFActionHelpers.hxx 94 additions, 8 deletionstree/treeplayer/inc/ROOT/TDFActionHelpers.hxx
- tree/treeplayer/inc/ROOT/TDFInterface.hxx 42 additions, 8 deletionstree/treeplayer/inc/ROOT/TDFInterface.hxx
- tree/treeplayer/inc/ROOT/TDFUtils.hxx 40 additions, 0 deletionstree/treeplayer/inc/ROOT/TDFUtils.hxx
Loading
Please register or sign in to comment