4#ifndef IROOTAUXDYN_IO_H
5#define IROOTAUXDYN_IO_H
24namespace ROOT {
class RNTupleReader; }
42 virtual void addReaderToObject(
void*
object,
size_t row, std::recursive_mutex* iomtx =
nullptr) = 0;
60 virtual int writeAuxAttributes(
const std::string& base_branch,
void*
object,
size_t rows_written ) = 0;
80 virtual std::vector<attrDataTuple>
collectAuxAttributes(
const std::string& base_branch,
void*
object ) = 0;
90 virtual std::unique_ptr<IRootAuxDynReader>
93 virtual std::unique_ptr<IRootAuxDynWriter>
95 int offsettab_len,
bool do_branch_fill)
const = 0;
97 virtual std::unique_ptr<IRNTupleAuxDynWriter>
100 virtual std::unique_ptr<IRootAuxDynReader>
102 ROOT::RNTupleReader* reader)
const = 0;
Interface for a RNTuple-based Writer that handles AuxDyn attributes Works in conjuction with the gene...
virtual std::vector< attrDataTuple > collectAuxAttributes(const std::string &base_branch, void *object)=0
Collect Aux data information to be writting out.
virtual ~IRNTupleAuxDynWriter()=default
Default Destructor.
virtual ~IRootAuxDynReader()
virtual void addReaderToObject(void *object, size_t row, std::recursive_mutex *iomtx=nullptr)=0
Attach specialized AuxStore for reading dynamic attributes.
virtual void resetBytesRead()=0
virtual size_t getBytesRead() const =0
Interface for an AuxDyn Writer - TTree based.
virtual bool needsCommit()=0
is there a need to call commit()?
virtual ~IRootAuxDynWriter()=default
virtual void setBranchFillMode(bool)=0
set per-branch independent commit/fill mode
virtual int writeAuxAttributes(const std::string &base_branch, void *object, size_t rows_written)=0
handle writing of dynamic xAOD attributes of an AuxContainer - called from RootTreeContainer::writeOb...
virtual int commit()=0
Call Fill() on the ROOT object used by this writer.
Selection rules: declare transient members.
Specialization of RootAuxDynStore for reading Aux Dynamic attributes from RNTuple.
std::tuple< std::string, std::string, void * > attrDataTuple