xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
XrdHttpChecksumHandlerImpl Class Reference

#include <XrdHttpChecksumHandler.hh>

Public Types

using XrdHttpChecksumPtr = std::unique_ptr< XrdHttpChecksum >
 
using XrdHttpChecksumRawPtr = XrdHttpChecksum *
 

Public Member Functions

 XrdHttpChecksumHandlerImpl ()=default
 
void configure (const char *csList)
 
XrdHttpChecksumRawPtr getChecksumToRun (const std::string &userDigest) const
 
const std::vector< std::string > & getNonIANAConfiguredCksums () const
 
const std::vector
< XrdHttpChecksumRawPtr > & 
getConfiguredChecksums () const
 

Private Member Functions

void initializeXRootDConfiguredCksums (const char *csList)
 

Static Private Member Functions

static void initializeCksumsMaps ()
 
static void addChecksumToMaps (XrdHttpChecksumPtr &&checksum)
 
static std::string getElement (const std::string &input, const std::string &delimiter, const size_t position)
 
static std::vector< std::string > getUserDigests (const std::string &userDigests)
 

Private Attributes

std::vector
< XrdHttpChecksumRawPtr
mConfiguredChecksums
 
std::vector< std::string > mNonIANAConfiguredChecksums
 

Static Private Attributes

static std::map< std::string,
XrdHttpChecksumPtr
XROOTD_DIGEST_NAME_TO_CKSUMS
 

Detailed Description

Implementation class of the XrdHttpChecksumHandler

Is useful for unit testing

Member Typedef Documentation

Constructor & Destructor Documentation

XrdHttpChecksumHandlerImpl::XrdHttpChecksumHandlerImpl ( )
default

Member Function Documentation

static void XrdHttpChecksumHandlerImpl::addChecksumToMaps ( XrdHttpChecksumPtr &&  checksum)
staticprivate
void XrdHttpChecksumHandlerImpl::configure ( const char *  csList)
XrdHttpChecksumRawPtr XrdHttpChecksumHandlerImpl::getChecksumToRun ( const std::string &  userDigest) const
const std::vector<XrdHttpChecksumRawPtr>& XrdHttpChecksumHandlerImpl::getConfiguredChecksums ( ) const

For testing purposes

static std::string XrdHttpChecksumHandlerImpl::getElement ( const std::string &  input,
const std::string &  delimiter,
const size_t  position 
)
staticprivate
const std::vector<std::string>& XrdHttpChecksumHandlerImpl::getNonIANAConfiguredCksums ( ) const
static std::vector<std::string> XrdHttpChecksumHandlerImpl::getUserDigests ( const std::string &  userDigests)
staticprivate

Returns a vector of user digests (lower-cased) extracted from the userDigests string passed in parameter

Parameters
userDigeststhe string containing a quality-valued checksum list e.g: adler32, md5;q=0.4, md5
Returns
the lower-cased user digests vector
static void XrdHttpChecksumHandlerImpl::initializeCksumsMaps ( )
staticprivate

Modify this if new checksums have to be supported or if some don't require base64 padding anymore

void XrdHttpChecksumHandlerImpl::initializeXRootDConfiguredCksums ( const char *  csList)
private

Initializes the checksums from the csList parameter passed

The elements of the csList parameter should all be lower-cased

Parameters
csListthe list of the configured checksum under the format 0:adler32,1:sha1,2:sha512

Member Data Documentation

std::vector<XrdHttpChecksumRawPtr> XrdHttpChecksumHandlerImpl::mConfiguredChecksums
private
std::vector<std::string> XrdHttpChecksumHandlerImpl::mNonIANAConfiguredChecksums
private
std::map<std::string,XrdHttpChecksumPtr> XrdHttpChecksumHandlerImpl::XROOTD_DIGEST_NAME_TO_CKSUMS
staticprivate

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