|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef RNTUPLEWRITERHELPER_H
6 #define RNTUPLEWRITERHELPER_H
9 #include "ROOT/REntry.hxx"
10 #include "ROOT/RField.hxx"
11 #include "ROOT/RNTuple.hxx"
12 #include "ROOT/RNTupleWriteOptions.hxx"
13 #include "ROOT/RNTupleWriter.hxx"
32 bool enableBufferedWrite,
bool enableMetrics);
46 void addField(
const std::string& field_name,
const std::string& attr_type);
void close()
Close the writer.
~RNTupleWriterHelper()=default
Default Destructor.
bool isGrouped() const
Is this RNTuple used by more than one APR container?
std::unique_ptr< RNTupleModel > m_model
Internal cache for the RNTuple model Before first commit the fields are added to the model At the fir...
void addField(const std::string &field_name, const std::string &attr_type)
Add a new field to the RNTuple.
ROOT::Experimental::RNTupleModel RNTupleModel
void addFieldValue(const std::string &field_name, void *attr_data)
Supply data address for a given field.
bool needsCommit() const
Check if any data needs to be committed.
std::map< std::string, void * > m_attrDataMap
Store data ptr for the first row, when only creating the model.
ROOT::Experimental::RNTupleWriter RNTupleWriter
std::tuple< std::string, std::string, void * > attrDataTuple
Add a new field to the RNTuple, collect the data pointer for the commit.
std::unique_ptr< REntry > m_entry
Internal cache for the RNEntry.
ROOT::Experimental::RFieldBase RFieldBase
ROOT::Experimental::RNTupleWriteOptions RNTupleWriteOptions
int commit()
Commit the data.
void increaseClientCount()
Keep track of how many APR containers are writing to this RNTuple.
const std::string & getName() const
Name of the RNTuple.
void addAttribute(const attrDataTuple &in)
Class to provide easy MsgStream access and capabilities.
bool m_collectMetrics
Enable/Disable Metric Collection.
ROOT::Experimental::REntry REntry
int m_clients
Count how many APR Containers are writing to this RNTuple (more than one makes a Group)
RNTupleWriteOptions m_opts
std::unique_ptr< RNTupleWriter > m_ntupleWriter
Internal cache for the native RNTupleWriter.
size_t size() const
Size of the RNTuple.
RNTupleWriterHelper(TFile *file, const std::string &ntupleName, bool enableBufferedWrite, bool enableMetrics)
Constructor.
void makeNewEntry()
Create a new empty RNTuple row with the current model (fields)