Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/ROOT/RNTupleFillStatus.hxx was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /// \file ROOT/RNTupleFillStatus.hxx
0002 /// \ingroup NTuple
0003 /// \author Jonas Hahnfeld <jonas.hahnfeld@cern.ch>
0004 /// \date 2024-04-15
0005 
0006 /*************************************************************************
0007  * Copyright (C) 1995-2024, Rene Brun and Fons Rademakers.               *
0008  * All rights reserved.                                                  *
0009  *                                                                       *
0010  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0011  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0012  *************************************************************************/
0013 
0014 #ifndef ROOT_RNTupleFillStatus
0015 #define ROOT_RNTupleFillStatus
0016 
0017 #include <ROOT/RNTupleTypes.hxx>
0018 
0019 #include <cstddef>
0020 
0021 namespace ROOT {
0022 
0023 class RNTupleFillContext;
0024 
0025 // clang-format off
0026 /**
0027 \class ROOT::RNTupleFillStatus
0028 \ingroup NTuple
0029 \brief A status object after filling an entry
0030 
0031 After passing an instance to RNTupleWriter::FillNoFlush() or RNTupleFillContext::FillNoFlush(), the caller must check
0032 ShouldFlushCluster() and call RNTupleWriter::FlushCluster() or RNTupleFillContext::FlushCluster() if necessary.
0033 */
0034 // clang-format on
0035 class RNTupleFillStatus {
0036    friend class RNTupleFillContext;
0037 
0038 private:
0039    /// Number of entries written into the current cluster
0040    ROOT::NTupleSize_t fNEntriesSinceLastFlush = 0;
0041    /// Number of bytes written into the current cluster
0042    std::size_t fUnzippedClusterSize = 0;
0043    /// Number of bytes written for the last entry
0044    std::size_t fLastEntrySize = 0;
0045    bool fShouldFlushCluster = false;
0046 
0047 public:
0048    /// Return the number of entries written into the current cluster.
0049    ROOT::NTupleSize_t GetNEntries() const { return fNEntriesSinceLastFlush; }
0050    /// Return the number of bytes written into the current cluster.
0051    std::size_t GetUnzippedClusterSize() const { return fUnzippedClusterSize; }
0052    /// Return the number of bytes for the last entry.
0053    std::size_t GetLastEntrySize() const { return fLastEntrySize; }
0054    /// Return true if the caller should call FlushCluster.
0055    bool ShouldFlushCluster() const { return fShouldFlushCluster; }
0056 };
0057 
0058 } // namespace ROOT
0059 
0060 #endif // ROOT_RNTupleFillStatus