Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
RootCompressionSettings.cpp
Go to the documentation of this file.
1 // STD
2 #include <stdexcept>
3 
4 // local
6 
7 // ROOT
8 #include "Compression.h"
9 
10 //-----------------------------------------------------------------------------
11 // Implementation file for class : RootCompressionSettings
12 //
13 // 2013-10-24 : Chris Jones
14 //-----------------------------------------------------------------------------
15 
16 //=============================================================================
17 // Standard constructor, initializes variables
18 //=============================================================================
20  : m_level( ROOT::CompressionSettings( ROOT::kZLIB, 1 ) ) {
21  const std::string::size_type idx = settings.find( ':' );
22  if ( idx != std::string::npos ) {
23  // Get compression algorithm type
24  const std::string alg = settings.substr( 0, idx );
25  ROOT::ECompressionAlgorithm alg_code = ROOT::kUseGlobalSetting;
26  if ( alg == "ZLIB" ) {
27  alg_code = ROOT::kZLIB;
28  } else if ( alg == "LZMA" ) {
29  alg_code = ROOT::kLZMA;
30  } else {
31  throw std::runtime_error( "ERROR: Unknown ROOT compression algorithm:" + alg );
32  }
33 
34  // get compression level
35  const std::string slev = settings.substr( idx + 1 );
36  const int ilev = std::stoi( slev );
37 
38  // set the level
39  m_level = ROOT::CompressionSettings( alg_code, ilev );
40  }
41 }
42 
43 //=============================================================================
STL class.
RootCompressionSettings(const std::string &settings)
Standard constructor.
T find(T...args)
T substr(T...args)
T stoi(T...args)
int m_level
The cached ROOT compression level int.