XRootD
XrdHttpChecksumHandlerImpl Class Reference

#include <XrdHttpChecksumHandler.hh>

+ Collaboration diagram for XrdHttpChecksumHandlerImpl:

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< XrdHttpChecksumRawPtr > & getConfiguredChecksums () const
 
const std::vector< std::string > & getNonIANAConfiguredCksums () const
 

Detailed Description

Implementation class of the XrdHttpChecksumHandler

Is useful for unit testing

Definition at line 37 of file XrdHttpChecksumHandler.hh.

Member Typedef Documentation

◆ XrdHttpChecksumPtr

◆ XrdHttpChecksumRawPtr

Constructor & Destructor Documentation

◆ XrdHttpChecksumHandlerImpl()

XrdHttpChecksumHandlerImpl::XrdHttpChecksumHandlerImpl ( )
default

Member Function Documentation

◆ configure()

void XrdHttpChecksumHandlerImpl::configure ( const char *  csList)

Definition at line 76 of file XrdHttpChecksumHandler.cc.

76  {
77  initializeCksumsMaps();
78  if(csList != nullptr) {
79  initializeXRootDConfiguredCksums(csList);
80  }
81 }

Referenced by XrdHttpChecksumHandler::configure().

+ Here is the caller graph for this function:

◆ getChecksumToRun()

XrdHttpChecksumHandlerImpl::XrdHttpChecksumRawPtr XrdHttpChecksumHandlerImpl::getChecksumToRun ( const std::string &  userDigest) const

Definition at line 49 of file XrdHttpChecksumHandler.cc.

49  {
50  if(!mConfiguredChecksums.empty()) {
51  std::vector<std::string> userDigests = getUserDigests(userDigestIn);
52  //Loop over the user digests and find the corresponding checksum
53  for(auto userDigest: userDigests) {
54  auto httpCksum = std::find_if(mConfiguredChecksums.begin(), mConfiguredChecksums.end(),[userDigest](const XrdHttpChecksumRawPtr & cksum){
55  return userDigest == cksum->getHttpNameLowerCase();
56  });
57  if(httpCksum != mConfiguredChecksums.end()) {
58  return *httpCksum;
59  }
60  }
61  return mConfiguredChecksums[0];
62  }
63  //If there are no configured checksums, return nullptr
64  return nullptr;
65 }

Referenced by XrdHttpChecksumHandler::getChecksumToRun().

+ Here is the caller graph for this function:

◆ getConfiguredChecksums()

const std::vector< XrdHttpChecksumHandler::XrdHttpChecksumRawPtr > & XrdHttpChecksumHandlerImpl::getConfiguredChecksums ( ) const

For testing purposes

Definition at line 71 of file XrdHttpChecksumHandler.cc.

71  {
72  return mConfiguredChecksums;
73 }

◆ getNonIANAConfiguredCksums()

const std::vector< std::string > & XrdHttpChecksumHandlerImpl::getNonIANAConfiguredCksums ( ) const

Definition at line 67 of file XrdHttpChecksumHandler.cc.

67  {
68  return mNonIANAConfiguredChecksums;
69 }

Referenced by XrdHttpChecksumHandler::getNonIANAConfiguredCksums().

+ Here is the caller graph for this function:

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