Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
RSnapshotOptions.hxx
Go to the documentation of this file.
1 // Author: Guilherme Amadio, Enrico Guiraud, Danilo Piparo CERN 2/2018
2 
3 /*************************************************************************
4  * Copyright (C) 1995-2018, Rene Brun and Fons Rademakers. *
5  * All rights reserved. *
6  * *
7  * For the licensing terms see $ROOTSYS/LICENSE. *
8  * For the list of contributors see $ROOTSYS/README/CREDITS. *
9  *************************************************************************/
10 
11 #ifndef ROOT_RSNAPSHOTOPTIONS
12 #define ROOT_RSNAPSHOTOPTIONS
13 
14 #include <Compression.h>
15 #include <ROOT/RStringView.hxx>
16 #include <string>
17 
18 namespace ROOT {
19 
20 namespace RDF {
21 /// A collection of options to steer the creation of the dataset on file
22 struct RSnapshotOptions {
23  using ECAlgo = ROOT::ECompressionAlgorithm;
24  RSnapshotOptions() = default;
25  RSnapshotOptions(const RSnapshotOptions &) = default;
26  RSnapshotOptions(RSnapshotOptions &&) = default;
27  RSnapshotOptions(std::string_view mode, ECAlgo comprAlgo, int comprLevel, int autoFlush, int splitLevel, bool lazy)
28  : fMode(mode), fCompressionAlgorithm(comprAlgo), fCompressionLevel{comprLevel}, fAutoFlush(autoFlush),
29  fSplitLevel(splitLevel), fLazy(lazy)
30  {
31  }
32  std::string fMode = "RECREATE"; ///< Mode of creation of output file
33  ECAlgo fCompressionAlgorithm = ROOT::kZLIB; ///< Compression algorithm of output file
34  int fCompressionLevel = 1; ///< Compression level of output file
35  int fAutoFlush = 0; ///< AutoFlush value for output tree
36  int fSplitLevel = 99; ///< Split level of output tree
37  bool fLazy = false; ///< Delay the snapshot of the dataset
38 };
39 } // ns RDF
40 } // ns ROOT
41 
42 #endif