XRootD
XrdEc::Config Class Reference

Global configuration for the EC module. More...

#include <XrdEcConfig.hh>

+ Collaboration diagram for XrdEc::Config:

Public Member Functions

RedundancyProviderGetRedundancy (const ObjCfg &objcfg)
 Get redundancy provider for given data object configuration. More...
 

Static Public Member Functions

static ConfigInstance ()
 Singleton access. More...
 

Public Attributes

bool enable_plugins
 

Detailed Description

Global configuration for the EC module.

Definition at line 39 of file XrdEcConfig.hh.

Member Function Documentation

◆ GetRedundancy()

RedundancyProvider& XrdEc::Config::GetRedundancy ( const ObjCfg objcfg)
inline

Get redundancy provider for given data object configuration.

Definition at line 55 of file XrdEcConfig.hh.

56  {
57  std::string key;
58  key += std::to_string( objcfg.nbchunks );
59  key += ':';
60  key += std::to_string( objcfg.nbparity );
61  key += '-';
62  key += std::to_string( uint8_t( objcfg.datasize ) );
63 
64  std::unique_lock<std::mutex> lck( mtx );
65  auto itr = redundancies.find( key );
66  if( itr == redundancies.end() )
67  {
68  auto p = redundancies.emplace( std::piecewise_construct,
69  std::forward_as_tuple(key),
70  std::forward_as_tuple(objcfg) );
71  return p.first->second;
72  }
73  else
74  return itr->second;
75  }

References XrdEc::ObjCfg::datasize, XrdEc::ObjCfg::nbchunks, and XrdEc::ObjCfg::nbparity.

Referenced by XrdEc::WrtBuff::Encode().

+ Here is the caller graph for this function:

◆ Instance()

static Config& XrdEc::Config::Instance ( )
inlinestatic

Singleton access.

Definition at line 46 of file XrdEcConfig.hh.

47  {
48  static Config config;
49  return config;
50  }

Referenced by XrdCl::EcHandler::EcHandler(), XrdEc::WrtBuff::Encode(), and XrdEc::StrmWriter::Open().

+ Here is the caller graph for this function:

Member Data Documentation

◆ enable_plugins

bool XrdEc::Config::enable_plugins

Definition at line 77 of file XrdEcConfig.hh.

Referenced by XrdCl::EcHandler::EcHandler(), and XrdEc::StrmWriter::Open().


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