XRootD
Loading...
Searching...
No Matches
XrdCksCalccrc32 Class Reference

#include <XrdCksCalccrc32.hh>

Inheritance diagram for XrdCksCalccrc32:
Collaboration diagram for XrdCksCalccrc32:

Public Member Functions

 XrdCksCalccrc32 ()
virtual ~XrdCksCalccrc32 ()
bool Combinable () override
const char * Combine (const char *Cksum, int DLen) override
 Combine checksum into current checksum.
const char * Combine (const char *Cksum1, const char *Cksum2, int DLen) override
 Combine two checksums and return result.
char * Final () override
 Final checksum.
void Init () override
 Initialize.
XrdCksCalc * New () override
const char * Type (int &csSz) override
void Update (const char *Buff, int BLen) override
 Update current checksum.
Public Member Functions inherited from XrdCksCalc
 XrdCksCalc ()
 Constructor.
virtual ~XrdCksCalc ()
 Destructor.
virtual char * Calc (const char *Buff, int BLen)
virtual char * Current ()
virtual void Recycle ()
 Recycle the checksum object as it is no longer needed. A default is given.

Detailed Description

Definition at line 37 of file XrdCksCalccrc32.hh.

Constructor & Destructor Documentation

◆ XrdCksCalccrc32()

XrdCksCalccrc32::XrdCksCalccrc32 ( )
inline

Definition at line 57 of file XrdCksCalccrc32.hh.

57{Init();}
void Init() override
Initialize.

References Init().

Referenced by New().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~XrdCksCalccrc32()

virtual XrdCksCalccrc32::~XrdCksCalccrc32 ( )
inlinevirtual

Definition at line 58 of file XrdCksCalccrc32.hh.

58{}

Member Function Documentation

◆ Combinable()

bool XrdCksCalccrc32::Combinable ( )
inlineoverridevirtual

Indicate whether or not checksums are combinable for this checksum.

Returns
True if checksums are combinable, false otherwise.
Note
The default is false as combinable checksums are possible for only a few checksum algorithms (e.g. adler and crc). Even then, combining checksums is an optimization not a neccisity.

Reimplemented from XrdCksCalc.

Definition at line 41 of file XrdCksCalccrc32.hh.

41{return true;}

◆ Combine() [1/2]

const char * XrdCksCalccrc32::Combine ( const char * Cksum,
int DLen )
overridevirtual

Combine checksum into current checksum.

Reimplemented from XrdCksCalc.

Definition at line 69 of file XrdCksCalccrc32.cc.

70{
71 uint32_t crc2 = getCS(Cksum);
72
73 pCheckSumTmp = pCheckSum = crc32_combine(pCheckSum, crc2, (z_off_t)DLen);
74
75#ifndef Xrd_Big_Endian
76 pCheckSumTmp = ntohl(pCheckSumTmp);
77#endif
78
79 return (char *)&pCheckSumTmp;
80}

◆ Combine() [2/2]

const char * XrdCksCalccrc32::Combine ( const char * Cksum1,
const char * Cksum2,
int DLen )
overridevirtual

Combine two checksums and return result.

Reimplemented from XrdCksCalc.

Definition at line 85 of file XrdCksCalccrc32.cc.

87{
88 uint32_t crc1 = getCS(Cksum1), crc2 = getCS(Cksum2);
89
90 pCheckSumTmp = crc32_combine(crc1, crc2, (z_off_t)DLen);
91
92#ifndef Xrd_Big_Endian
93 pCheckSumTmp = ntohl(pCheckSumTmp);
94#endif
95
96 return (char *)&pCheckSumTmp;
97}

◆ Final()

char * XrdCksCalccrc32::Final ( )
overridevirtual

Final checksum.

Implements XrdCksCalc.

Definition at line 102 of file XrdCksCalccrc32.cc.

103{
104 pCheckSumTmp = pCheckSum;
105
106#ifndef Xrd_Big_Endian
107 pCheckSumTmp = ntohl(pCheckSumTmp);
108#endif
109
110 return (char *)&pCheckSumTmp;
111}

◆ Init()

void XrdCksCalccrc32::Init ( )
overridevirtual

Initialize.

Implements XrdCksCalc.

Definition at line 116 of file XrdCksCalccrc32.cc.

117{
118 pCheckSum = crc32( 0L, Z_NULL, 0 );
119}

Referenced by XrdCksCalccrc32().

Here is the caller graph for this function:

◆ New()

XrdCksCalc * XrdCksCalccrc32::New ( )
inlineoverridevirtual

Get a new instance of the underlying checksum calculation object.

Returns
the checksum calculation object.

Implements XrdCksCalc.

Definition at line 51 of file XrdCksCalccrc32.hh.

51{return (XrdCksCalc *)new XrdCksCalccrc32;}
XrdCksCalc()
Constructor.

References XrdCksCalc::XrdCksCalc(), and XrdCksCalccrc32().

Here is the call graph for this function:

◆ Type()

const char * XrdCksCalccrc32::Type ( int & csSize)
inlineoverridevirtual

Get the checksum object algorithm name and the number bytes (i.e. size) required for the checksum value.

Parameters
csSize-> Parameter to hold the size of the checksum value.
Returns
the checksum algorithm's name. The name persists event after the checksum object is deleted.

Implements XrdCksCalc.

Definition at line 55 of file XrdCksCalccrc32.hh.

55{csSz = sizeof(pCheckSum); return "crc32";}

◆ Update()

void XrdCksCalccrc32::Update ( const char * Buff,
int BLen )
overridevirtual

Update current checksum.

Implements XrdCksCalc.

Definition at line 124 of file XrdCksCalccrc32.cc.

125{
126 pCheckSum = crc32( pCheckSum, (const Bytef*)Buff, BLen );
127}

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