Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RNTupleWriteOptionsDaos.hxx
Go to the documentation of this file.
1/// \file ROOT/RNTupleWriteOptionsDaos.hxx
2/// \ingroup NTuple ROOT7
3/// \author Jakob Blomer <jblomer@cern.ch>
4/// \date 2024-02-22
5/// \warning This is part of the ROOT 7 prototype! It will change without notice. It might trigger earthquakes. Feedback
6/// is welcome!
7
8/*************************************************************************
9 * Copyright (C) 1995-2019, Rene Brun and Fons Rademakers. *
10 * All rights reserved. *
11 * *
12 * For the licensing terms see $ROOTSYS/LICENSE. *
13 * For the list of contributors see $ROOTSYS/README/CREDITS. *
14 *************************************************************************/
15
16#ifndef ROOT7_RNTupleWriteOptionsDaos
17#define ROOT7_RNTupleWriteOptionsDaos
18
20
21#include <cstdint>
22#include <memory>
23#include <string>
24#include <utility>
25
26namespace ROOT {
27namespace Experimental {
28
29// clang-format off
30/**
31\class ROOT::Experimental::RNTupleWriteOptionsDaos
32\ingroup NTuple
33\brief DAOS-specific user-tunable settings for storing ntuples
34*/
35// clang-format on
37 std::string fObjectClass{"SX"};
38 /// The maximum cage size is set to the equivalent of 16 uncompressed pages - 16MiB by default.
39 /// A `fMaxCageSize` of 0 disables the caging mechanism.
41
42public:
43 ~RNTupleWriteOptionsDaos() override = default;
44 std::unique_ptr<RNTupleWriteOptions> Clone() const override
45 {
46 return std::make_unique<RNTupleWriteOptionsDaos>(*this);
47 }
48
49 const std::string &GetObjectClass() const { return fObjectClass; }
50 /// Set the object class used to generate OIDs that relate to user data. Any
51 /// `OC_xxx` constant defined in `daos_obj_class.h` may be used here without
52 /// the OC_ prefix.
53 void SetObjectClass(const std::string &val) { fObjectClass = val; }
54
55 uint32_t GetMaxCageSize() const { return fMaxCageSize; }
56 /// Set the upper bound for page concatenation into cages, in bytes. It is assumed
57 /// that cage size will be no smaller than the approximate uncompressed page size.
58 /// To disable page concatenation, set this value to 0.
59 void SetMaxCageSize(uint32_t cageSz) { fMaxCageSize = cageSz; }
60};
61
62} // namespace Experimental
63} // namespace ROOT
64
65#endif // ROOT7_RNTupleWriteOptionsDaos
DAOS-specific user-tunable settings for storing ntuples.
void SetObjectClass(const std::string &val)
Set the object class used to generate OIDs that relate to user data.
std::unique_ptr< RNTupleWriteOptions > Clone() const override
void SetMaxCageSize(uint32_t cageSz)
Set the upper bound for page concatenation into cages, in bytes.
uint32_t fMaxCageSize
The maximum cage size is set to the equivalent of 16 uncompressed pages - 16MiB by default.
Common user-tunable settings for storing ntuples.
std::size_t fMaxUnzippedPageSize
Pages can grow only to the given limit in bytes.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...