9#ifndef POOL_RNTUPLECONTAINER_H
10#define POOL_RNTUPLECONTAINER_H 1
19#include "ROOT/RNTupleView.hxx"
30namespace ROOT {
class RNTupleReader; }
45 std::optional< ROOT::RNTupleView<void> >
view;
48 void*
object =
nullptr;
105 virtual StatusCode
close() override final;
110 Io::IoFlag mod) override final;
131 virtual uint64_t
size() override final;
154 virtual StatusCode
writeObject(ActionList::value_type&)
override final;
161 virtual StatusCode
transAct(
pool::Transaction::Action action) override final;
165 pool::DbContainer& cntH,
166 pool::ShapeH shape) override final;
virtual uint64_t nextRecordId() override final
Number of next record in the container (=size if no delete is allowed).
std::unique_ptr< RootAuxDynIO::IFactoryTool > m_auxDynTool
Factory object from AuxDynIO plugin that creates AuxDyn readers and writers.
pool::DbDatabase m_dbH
Parent Database handle.
RootStorageSvc::RNTupleWriterHelper * m_ntupleWriter
Internal cache of the RNTupleWriterHelper.
ROOT::RNTupleReader * m_ntupleReader
Internal cache of the native RNTupleReader.
bool m_isDirty
flag set on writing to prevent double writes in the same commit
virtual StatusCode close() override final
Close the container and deallocate resources.
RNTupleContainer(const std::string &name)
virtual StatusCode checkAccess(pool::DbDatabase &dbH, const std::string &nam) const override final
Check if we can access the container for reading with the given type.
std::vector< FieldDesc > m_fieldDescs
List of field descriptors.
virtual StatusCode store(const void *object, pool::DbContainer &cntH, pool::ShapeH shape) override final
Store object in location.
virtual StatusCode getOption(pool::DbOption &opt) override final
Access options.
virtual uint64_t size() override final
Number of entries within the container.
void clearDirty()
Clear the dirty status (used after containing TTree was Filled).
pool::RootDatabase * m_rootDb
Root database file reference.
virtual ~RNTupleContainer()
virtual StatusCode transAct(pool::Transaction::Action action) override final
Execute transaction action.
virtual StatusCode loadObject(void **ptr, pool::ShapeH shape, Token::OID_t &oid) override final
Find object by object identifier and load it into memory.
const std::string & getName() const
Return the name of the container.
int m_ioBytes
Number of bytes written/read during last operation. Set to -1 if it failed.
virtual StatusCode open(pool::DbDatabase &dbH, const std::string &nam, const pool::DbTypeInfo *info, Io::IoFlag mod) override final
Open the container for object access.
virtual void useNextRecordId(uint64_t nextID) override final
Suggest next Record ID for tbe next object written - used only with synced indexes.
bool isDirty() const
Return true if this branch container was updated and it's TTree needs to be Filled.
virtual StatusCode writeObject(ActionList::value_type &) override final
Commit single entry to container.
virtual StatusCode setOption(const pool::DbOption &opt) override final
Set options.
const uint32_t m_indexMulti
StatusCode initObjectFieldDesc(FieldDesc &dsc)
Init a field description for an object (i.e. find TClass etc.).
Interface for a RNTuple-based Writer that handles AuxDyn attributes Works in conjuction with the gene...
Description: Definition of the generic column in a (relational) Database.
DbColumn()
Cache class information (if available) Do not allow unwanted instantiations by users.
"Generic" Container implementation
std::string m_name
Container name.
virtual std::string name() const override
Get container name.
Description: Handle managing a DbDatabaseObj, a generic Database object.
Description: ROOT specific implementation of Database file.
Selection rules: declare transient members.
Specialization of RootAuxDynStore for reading Aux Dynamic attributes from RNTuple.
const class Shape * ShapeH
Definition of a field info structure.
FieldDesc & operator=(FieldDesc const &other)=delete
FieldDesc(const DbColumn &c)
std::unique_ptr< RootAuxDynIO::IRootAuxDynReader > auxdyn_reader
FieldDesc(FieldDesc const &other)=delete
FieldDesc(FieldDesc &&other)=default
std::optional< ROOT::RNTupleView< void > > view
std::unique_ptr< RootAuxDynIO::IRNTupleAuxDynWriter > auxdyn_writer
const std::string typeName()
FieldDesc & operator=(FieldDesc &&other)=default