Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
ROOT::Experimental::Internal::RNTupleJoinTable::REntryMapping Class Reference

Provides a mapping from one or several join field values to an entry index.

Definition at line 50 of file RNTupleJoinTable.hxx.

Classes

struct  RCombinedJoinFieldValue
 Container for the combined hashes of join field values. More...
 
struct  RCombinedJoinFieldValueHash
 Hash combining the individual join field value hashes from RCombinedJoinFieldValue. More...
 

Public Member Functions

 REntryMapping (RPageSource &pageSource, const std::vector< std::string > &joinFieldNames)
 Create a new entry mapping.
 
const std::vector< ROOT::NTupleSize_t > * GetEntryIndexes (std::vector< void * > valuePtrs) const
 Get the entry indexes for this entry mapping.
 

Private Attributes

std::vector< std::string > fJoinFieldNames
 Names of the join fields used for the mapping to their respective entry indexes.
 
std::vector< std::size_t > fJoinFieldValueSizes
 The size (in bytes) for each join field, corresponding to fJoinFieldNames.
 
std::unordered_map< RCombinedJoinFieldValue, std::vector< ROOT::NTupleSize_t >, RCombinedJoinFieldValueHashfMapping
 The mapping itself.
 

Constructor & Destructor Documentation

◆ REntryMapping()

ROOT::Experimental::Internal::RNTupleJoinTable::REntryMapping::REntryMapping ( RPageSource & pageSource,
const std::vector< std::string > & joinFieldNames )

Create a new entry mapping.

Parameters
[in]pageSourceThe page source of the RNTuple with the entries to map.
[in]joinFieldNamesNames of the join fields to use in the mapping.

Definition at line 35 of file RNTupleJoinTable.cxx.

Member Function Documentation

◆ GetEntryIndexes()

const std::vector< ROOT::NTupleSize_t > * ROOT::Experimental::Internal::RNTupleJoinTable::REntryMapping::GetEntryIndexes ( std::vector< void * > valuePtrs) const

Get the entry indexes for this entry mapping.

Definition at line 90 of file RNTupleJoinTable.cxx.

Member Data Documentation

◆ fJoinFieldNames

std::vector<std::string> ROOT::Experimental::Internal::RNTupleJoinTable::REntryMapping::fJoinFieldNames
private

Names of the join fields used for the mapping to their respective entry indexes.

Definition at line 86 of file RNTupleJoinTable.hxx.

◆ fJoinFieldValueSizes

std::vector<std::size_t> ROOT::Experimental::Internal::RNTupleJoinTable::REntryMapping::fJoinFieldValueSizes
private

The size (in bytes) for each join field, corresponding to fJoinFieldNames.

This information is stored to be able to properly cast incoming void pointers to the join field values in GetEntryIndexes.

Definition at line 90 of file RNTupleJoinTable.hxx.

◆ fMapping

std::unordered_map<RCombinedJoinFieldValue, std::vector<ROOT::NTupleSize_t>, RCombinedJoinFieldValueHash> ROOT::Experimental::Internal::RNTupleJoinTable::REntryMapping::fMapping
private

The mapping itself.

Maps field values (or combinations thereof in case the join key is composed of multiple fields) to their respective entry numbers.

Definition at line 83 of file RNTupleJoinTable.hxx.

Libraries for ROOT::Experimental::Internal::RNTupleJoinTable::REntryMapping:

The documentation for this class was generated from the following files: