xrootd
Loading...
Searching...
No Matches
Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
XrdCksLoader Class Reference

#include <XrdCksLoader.hh>

Collaboration diagram for XrdCksLoader:
Collaboration graph
[legend]

Classes

struct  csInfo
 

Public Member Functions

XrdCksCalcLoad (const char *csName, const char *csParms=0, char *eBuff=0, int eBlen=0, bool orig=false)
 
 XrdCksLoader (XrdVersionInfo &vInfo, const char *libPath=0)
 
 ~XrdCksLoader ()
 Destructor.
 

Private Member Functions

csInfoFind (const char *Name)
 

Private Attributes

char * verMsg
 
XrdVersionInfo * urVersion
 
char * ldPath
 
csInfo csTab [csMax]
 
int csLast
 

Static Private Attributes

static const int csMax = 8
 

Detailed Description

This class defines the checksum loader interface. It is intended to be used by xrootd clients to obtain an instance of a checksum calculation object. This object may be builtin or may come from a shared library.

Constructor & Destructor Documentation

◆ XrdCksLoader()

XrdCksLoader::XrdCksLoader ( XrdVersionInfo &  vInfo,
const char *  libPath = 0 
)

Constructor

Parameters
vInfoIs the reference to the version information corresponding to the xrootd version you compiled with. You define this information using the XrdVERSIONINFODEF macro defined in XrdVersion.hh. You must supply your version information and it must be compatible with the loader and any shared libraries that it might load on your behalf.
libPathThe path where dynamic checksum calculators are to be found and dynamically loaded, if need be. If libPath is nil then the default loader search order is used. The name of the shared library must follow the naming convention "libXrdCksCalc<csName>.so" where <csName> is the checksum name. So, an sha256 checksum would try to load libXrdCksCalcsha256.so shared library.

◆ ~XrdCksLoader()

XrdCksLoader::~XrdCksLoader ( )

Destructor.

Member Function Documentation

◆ Find()

csInfo * XrdCksLoader::Find ( const char *  Name)
private

◆ Load()

XrdCksCalc * XrdCksLoader::Load ( const char *  csName,
const char *  csParms = 0,
char *  eBuff = 0,
int  eBlen = 0,
bool  orig = false 
)

Get a new XrdCksCalc object that can calculate the checksum corresponding to the specified name. The object can be used to compute checksums on the fly. The object's Recycle() method must be used to delete it. The adler32, crc32, and md5 checksums are natively supported. Up to five more checksum algorithms can be loaded from shared libraries.

Parameters
csNameThe name of the checksum algorithm (e.g. md5).
csParmsAny parameters that might be needed by the checksum algorithm should it be loaded from a shared library.
eBuffOptional pointer to a buffer to receive the reason for a load failure as a null terminated string.
eBlenThe length of the buffer.
origReturns the original object not a new instance of it. This is usually used by CksManager during an autoload.
Returns
Success: A pointer to a new checksum calculation object. Failure: Zero if the corresponding checksum object could not be loaded. If eBuff was supplied, it holds the reason.

Member Data Documentation

◆ csLast

int XrdCksLoader::csLast
private

◆ csMax

const int XrdCksLoader::csMax = 8
staticprivate

◆ csTab

csInfo XrdCksLoader::csTab[csMax]
private

◆ ldPath

char* XrdCksLoader::ldPath
private

◆ urVersion

XrdVersionInfo* XrdCksLoader::urVersion
private

◆ verMsg

char* XrdCksLoader::verMsg
private

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