The Gaudi Framework  master (ff829712)
Loading...
Searching...
No Matches
RootHistCnv::RootCompressionSettings Class Reference

Simple class to decode a ROOT compression settings string, of the form '<Alg>:<level>' into the integer code to pass to ROOT. More...

#include </builds/gaudi/Gaudi/RootHistCnv/src/RootCompressionSettings.h>

Public Member Functions

 RootCompressionSettings (const std::string &settings)
 Standard constructor.
 
int level () const
 Get the level.
 

Private Attributes

int m_level
 The cached ROOT compression level int.
 

Detailed Description

Simple class to decode a ROOT compression settings string, of the form '<Alg>:<level>' into the integer code to pass to ROOT.

Author
Chris Jones
Date
2013-10-24

Definition at line 28 of file RootCompressionSettings.h.

Constructor & Destructor Documentation

◆ RootCompressionSettings()

RootHistCnv::RootCompressionSettings::RootCompressionSettings ( const std::string & settings)

Standard constructor.

Definition at line 29 of file RootCompressionSettings.cpp.

30 : m_level( ROOT::CompressionSettings( ROOT::RCompressionSetting::EAlgorithm::kZLIB, 1 ) ) {
31 const std::string::size_type idx = settings.find( ':' );
32 if ( idx != std::string::npos ) {
33 // Get compression algorithm type
34 const std::string alg = settings.substr( 0, idx );
35 ROOT::RCompressionSetting::EAlgorithm::EValues alg_code = ROOT::RCompressionSetting::EAlgorithm::kUseGlobal;
36 if ( alg == "ZLIB" ) {
37 alg_code = ROOT::RCompressionSetting::EAlgorithm::kZLIB;
38 } else if ( alg == "LZMA" ) {
39 alg_code = ROOT::RCompressionSetting::EAlgorithm::kLZMA;
40 } else if ( alg == "LZ4" ) {
41 alg_code = ROOT::RCompressionSetting::EAlgorithm::kLZ4;
42#if ROOT_VERSION_CODE >= ROOT_VERSION( 6, 20, 0 )
43 } else if ( alg == "ZSTD" ) {
44 alg_code = ROOT::RCompressionSetting::EAlgorithm::kZSTD;
45#endif
46 } else {
47 throw std::runtime_error( "ERROR: Unknown ROOT compression algorithm:" + alg );
48 }
49
50 // get compression level
51 const std::string slev = settings.substr( idx + 1 );
52 const int ilev = std::stoi( slev );
53
54 // set the level
55 m_level = ROOT::CompressionSettings( alg_code, ilev );
56 }
57}
int m_level
The cached ROOT compression level int.

Member Function Documentation

◆ level()

int RootHistCnv::RootCompressionSettings::level ( ) const
inline

Get the level.

Definition at line 37 of file RootCompressionSettings.h.

37{ return m_level; }

Member Data Documentation

◆ m_level

int RootHistCnv::RootCompressionSettings::m_level
private

The cached ROOT compression level int.

Definition at line 30 of file RootCompressionSettings.h.


The documentation for this class was generated from the following files: